Instalar certificados curinga de permite criptografar no Nginx no Ubuntu 19.04

Em março de 2018, Let's Encrypt adicionou suporte para certificados curinga. Os certificados curinga permitem proteger todos os subdomínios de primeiro nível de um domínio com um único certificado. Os certificados curinga são obtidos apenas através do ACMEv2, que é uma versão atualizada do protocolo ACME. Para utilizar o ACMEv2 para certificados curinga ou não, você precisará de um cliente que tenha sido atualizado para oferecer suporte ao ACMEv2. Um desses clientes é o acme.sh, que é um cliente do protocolo ACME / ACMEv2 escrito exclusivamente na linguagem Shell (shell Unix), sem nenhuma dependência. Além disso, os domínios curinga devem ser validados usando o tipo de desafio DNS-01. Isso implica que você precisa modificar os registros DNS TXT para provar o controle sobre um domínio e obter um certificado curinga.

Neste guia, explicamos como obter e implantar certificados curinga gratuitos do Let's Encrypt no Ubuntu 19.04 usando a ferramenta Lexicon doacme.sh cliente para manipulação automática de registros DNS consumindo a API Vultr e implantando certificados no servidor da web Nginx.

Exigências

  • Servidor de nuvem Ubuntu 19.04 Vultr recentemente implantado.
  • Você tem um nome de domínio registrado. Este guia usa example.comcomo um exemplo de domínio.
  • Verifique se você definiu os registros DNS A / AAAA e CNAME para o seu Nome de domínio totalmente qualificado (FQDN). Você pode consultar o tutorial Introdução ao Vultr DNS se precisar se familiarizar com os conceitos de DNS.
  • Acesso à API do Vultr ativado no painel de controle da conta do Vultr.

Antes de você começar

Verifique a versão do Ubuntu.

lsb_release -ds
# Ubuntu 19.04

Crie uma nova conta de usuário com sudoacesso e seu nome de usuário preferido e mude para ela. Nós usamos johndoe.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

NOTA : Substitua johndoepelo seu nome de usuário.

Configure o fuso horário.

sudo dpkg-reconfigure tzdata

Verifique se o seu sistema Ubuntu está atualizado.

sudo apt update && sudo apt upgrade -y

Instale os pacotes necessários.

sudo apt install -y git wget curl socat

Instale o Nginx

Instale o servidor da web Nginx.

sudo apt install -y nginx

Verifique a versão.

sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)

Instale o Python e o Lexicon

Como primeira etapa no processo de obtenção de certificados curinga do Let's Encrypt usando o acme.sh e a API Vultr, você precisa instalar o Python e o Lexicon . O Lexicon é um pacote Python que fornece uma maneira de manipular registros DNS em vários provedores DNS de maneira padronizada.

Instale o Python se ainda não estiver instalado no seu sistema.

sudo apt install -y python3

Confirme a instalação verificando a versão.

python3 --version
# Python 3.7.3

Instale a ferramenta Lexicon. Um léxico é uma ferramenta Python que permite manipular registros DNS em vários provedores DNS de maneira padronizada.

sudo apt install -y lexicon

Verifique a versão do Lexicon.

lexicon --version
# lexicon 3.0.8

Instalar acme.shcliente

Acme.shé um cliente de protocolo ACME escrito puramente na linguagem Shell (shell Unix) que automatiza o processo de obtenção de um certificado assinado via Let's Encrypt. Ele suporta ACME v1 e ACME v2 e, o mais importante, suporta certificados curinga do ACME v2. Nesta seção, instalamos um script Acme.sh.

NOTA: É recomendável usar o rootusuário para instalar acme.sh, embora não exija root/ sudoacesse.

Alterne para rootusuário do usuário comum, se você o criou.

sudo su - root

Baixe e instale acme.sh.

git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd

Verifique a versão.

acme.sh --version
# v2.8.2

Obter certificados curinga de Let's Encrypt

Para obter um certificado curinga, podemos usar apenas o método de validação de DNS. Usamos a API DNS Lexicon e Vultr para manipular registros DNS TXT.

Obtenha certificados curinga RSA e ECC para seu domínio.

# Configure your API key and username
export PROVIDER=vultr
export LEXICON_VULTR_USERNAME="[email protected]"
export LEXICON_VULTR_TOKEN="XXXXXXXXXXXXXXX"

# RSA 2048
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength 2048
# ECC 256
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength ec-256

NOTA : Não esqueça de substituir example.compelo seu nome de domínio e substitua os valores de espaço reservado da API Vultr pelos seus.

Após executar os comandos anteriores, seus certificados e chaves estão em:

  • Para o ~/.acme.sh/example.comdiretório RSA:
  • Para o ~/.acme.sh/example.com_eccdiretório ECC / ECDSA:

NOTA : Você não deve usar os arquivos cert na ~/.acme.sh/pasta, eles são apenas para uso interno, a estrutura de diretórios pode mudar no futuro.

Para listar seus certificados, você pode executar:

acme.sh --list

Crie uma pasta para armazenar seus certificados em produção. Nós usamos /etc/letsencryptdiretório.

sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instale / copie certificados para uso em produção em seu servidor.

# RSA
acme.sh --install-cert -d example.com \
        --cert-file /etc/letsencrypt/example.com/cert.pem \
        --key-file /etc/letsencrypt/example.com/private.key \
        --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
        --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
        --key-file /etc/letsencrypt/example.com_ecc/private.key \
        --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

Agora que obtivemos com sucesso certificados curinga do Let's Encrypt, precisamos configurar o servidor da web Nginx. Todos os certificados são renovados automaticamente a cada 60 dias.

Após obter e instalar certs no seu local preferido, você pode sair do rootusuário para um sudousuário comum e continuar a gerenciar seu servidor usando, sudose necessário.

exit

Configurar servidor da web Nginx

Execute sudo vim /etc/nginx/sites-available/example.com.confe preencha o arquivo com o seguinte conteúdo. Substitua todas as ocorrências de example.compelo seu próprio nome de domínio.

server {

  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com *.example.com;
  root /var/www/example.com;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

}

Ative a nova example.com.confconfiguração vinculando o arquivo ao sites-enableddiretório

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Teste a configuração do Nginx.

sudo nginx -t

Recarregue o Nginx.

sudo systemctl reload nginx.service

É isso aí. Implementamos certificados curinga no Nginx, usando a API acme.sh, Lexicon e Vultr. Certificados curinga podem ser úteis quando você deseja proteger vários subdomínios de primeiro nível gerados dinamicamente.



Leave a Comment

Como instalar o Blacklistd no FreeBSD 11.1

Como instalar o Blacklistd no FreeBSD 11.1

Introdução Qualquer serviço conectado à Internet é um alvo em potencial para ataques de força bruta ou acesso injustificado. Existem ferramentas como fail2ba

Como ativar o TLS 1.3 no Apache no Fedora 30

Como ativar o TLS 1.3 no Apache no Fedora 30

Usando um sistema diferente? O TLS 1.3 é uma versão do protocolo TLS (Transport Layer Security) publicada em 2018 como um padrão proposto no RFC 8446

Configurando um Chroot no Debian

Configurando um Chroot no Debian

Este artigo ensinará como configurar uma prisão chroot no Debian. Presumo que você esteja usando o Debian 7.x. Se você estiver executando o Debian 6 ou 8, isso pode funcionar, mas

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

Após alterar a porta SSH, configurar a batida na porta e fazer outros ajustes para a segurança SSH, talvez haja mais uma maneira de protegê-lo

Protegendo o MongoDB

Protegendo o MongoDB

O MongoDB não é seguro por padrão. Se você estiver instalando o MongoDB e iniciando-o sem configurá-lo para autenticação, terá um mau momento

Como instalar rkhunter no Ubuntu

Como instalar rkhunter no Ubuntu

Rkhunter é um software que encontra rootkits em um servidor Linux. Os rootkits são instalados por hackers para que eles sempre possam acessar o servidor. Neste documento, você b

Ativando o mod_evasive no Apache

Ativando o mod_evasive no Apache

Mod_evasive é um módulo para o Apache que executa uma ação automaticamente quando um ataque HTTP DoS ou ataque de força bruta é detectado. Mod_evasive é capaz de registrar um

Protegendo o NGINX do ataque Logjam no CentOS

Protegendo o NGINX do ataque Logjam no CentOS

Bem, há outra vulnerabilidade SSL em estado selvagem. Tecnicamente, não é realmente uma vulnerabilidade, é apenas um buraco dentro do protocolo em que confiamos.

Como desativar o SELinux no CentOS 7

Como desativar o SELinux no CentOS 7

SELinux, uma abreviação de Security-Enhanced Linux, é um aprimoramento de segurança do sistema operacional Linux. É um sistema de rotulagem que bloqueia muitas

Configurar o Uncomplicated Firewall (UFW) no Ubuntu 14.04

Configurar o Uncomplicated Firewall (UFW) no Ubuntu 14.04

A segurança é crucial quando você executa seu próprio servidor. Você deseja garantir que apenas usuários autorizados possam acessar seu servidor, configuração e serviços. Eu

Como ativar o TLS 1.3 no Apache no FreeBSD 12

Como ativar o TLS 1.3 no Apache no FreeBSD 12

Usando um sistema diferente? O TLS 1.3 é uma versão do protocolo TLS (Transport Layer Security) publicada em 2018 como um padrão proposto no RFC 8446

Usando Permite Criptografar no OpenBSD 6.1

Usando Permite Criptografar no OpenBSD 6.1

Não é mais necessário que alguém tenha que criar seus próprios certificados SSL, porque agora você pode obter seu próprio certificado SSL válido e gratuito em Let

Permite criptografar: migrando do TLS-SNI-01

Permite criptografar: migrando do TLS-SNI-01

Permite criptografar é um serviço gratuito que gera certificados para proteger seu site. Ele suporta a geração de diferentes tipos de certificados, incluindo

Como instalar o OSSEC HIDS em um servidor CentOS 7

Como instalar o OSSEC HIDS em um servidor CentOS 7

Introdução O OSSEC é um sistema de detecção de intrusão (HIDS) de código-fonte aberto que executa análise de log, verificação de integridade e registro do Windows

Como ativar o TLS 1.3 no Nginx no FreeBSD 12

Como ativar o TLS 1.3 no Nginx no FreeBSD 12

Usando um sistema diferente? O TLS 1.3 é uma versão do protocolo TLS (Transport Layer Security) publicada em 2018 como um padrão proposto no RFC 8446

Batendo na porta no Debian

Batendo na porta no Debian

Usando um sistema diferente? Até agora, você provavelmente mudou sua porta SSH padrão. Ainda assim, os hackers podem verificar facilmente os intervalos de portas para descobrir essa porta - mas com

Configure o NGINX com ModSecurity no CentOS 6

Configure o NGINX com ModSecurity no CentOS 6

Neste artigo, explicarei como criar uma pilha LEMP protegida pelo ModSecurity. O ModSecurity é um firewall de aplicativo da web de código aberto que é útil para

Trabalhando com recursos do Linux

Trabalhando com recursos do Linux

Introdução Os recursos do Linux são atributos especiais no kernel do Linux que concedem privilégios específicos a processos e executáveis ​​binários que são normais

Como alterar a porta SSH no CoreOS

Como alterar a porta SSH no CoreOS

Alterar a porta SSH pode ajudar a evitar problemas de segurança. Neste guia, você aprenderá como alterar a porta SSH no CoreOS. Etapa 1: Alterando a porta SSH

Como instalar permite criptografar SSL no CentOS 7 executando o servidor da Web Apache

Como instalar permite criptografar SSL no CentOS 7 executando o servidor da Web Apache

Introdução Neste tutorial, você aprenderá o procedimento para instalar o certificado TLS / SSL no servidor da web Apache. Quando terminar, todo o tráfego

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.