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 "your_email@example.com"
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="your_vultr_email@example.com"
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.

Deixar um comentário

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.