Como proteger o nginx com Let's Encrypt no Ubuntu e Debian

Como proteger o nginx com Let's Encrypt no Ubuntu e Debian

Seguindo o anterior Vamos criptografar tutorial sobre Apache SSL, Neste artigo, discutiremos como gerar e instalar um certificado SSL/TLS gratuito emitido por Vamos criptografar CA para Nginx servidor da web on Ubuntu ou Debian.

Leia também
  1. Prenda o Apache com Let's Encrypt gratuito no Ubuntu e Debian
  2. Instale Let's Encrypt SSL para proteger o Apache no RHEL e CENTOS
Testando o ambiente de amostra
Instalar, vamos criptografar para proteger o nginx no Ubuntu e Debian

Requisitos

  1. Um domínio registrado com DNS válido A registra para apoiar o endereço IP do seu servidor.
  2. Um servidor web nginx instalado com SSL e VHOST ativados, caso você planeje hospedar vários domínios ou subdomínios.

Etapa 1: Instalando o Nginx Web Server

1. Na primeira etapa, instale o NGINX Web Server, se já não estiver instalado, emitindo o comando abaixo:

$ sudo apt-get install nginx 
Instale o Nginx Web Server no Ubuntu 14.04 e Debian 8

Etapa 2: gerar um certificado SSL Let's Crypt para Nginx

2. Antes de gerar um certificado SSL/TLS gratuito, instale Vamos criptografar software em /usr/local/ Hierarquia do sistema de arquivos com a ajuda de git Cliente emitindo os comandos abaixo:

$ sudo apt -get -y install git $ cd/usr/local/$ sudo git clone https: // github.com/letsencrypt/letsencrypt 

3. Embora o procedimento de obter um certificado para Nginx é automatizado, você ainda pode criar e instalar manualmente um certificado SSL gratuito para nginx usando o plug -in autônomo Let's Crypt.

Este método requer essa porta 80 Não deve estar em uso no seu sistema por um curto período de tempo, enquanto o cliente do Let's Encrypt valida a identidade do servidor antes de gerar o certificado.

Caso você já esteja executando o nginx, pare o serviço emitindo o seguinte comando.

$ sudo serviço nginx stop ou $ sudo systemctl stop nginx 

Caso você esteja executando outro serviço que se vincule na porta 80 pare esse serviço também.

4. Confirme essa porta 80 é gratuito executando o comando netstat:

$ sudo netstat -tlpn | Grep 80 
Verifique as portas de escuta atuais no Linux

5. Agora é hora de correr LetSencrypt Para obter um certificado SSL. Vá para Vamos criptografar Diretório de instalação encontrado em /usr/local/letsencrypt caminho do sistema e execute o LetSencrypt-Auto Comando fornecendo o Certonly --estar sozinho opção e -d Bandeira para cada domínio ou subdomínio que você deseja gerar um certificado.

$ CD/USR/LOCAL/LetSencrypt $ sudo ./LetSencrypt -Auto Certonly -Standalone -D Your_Domain.tld 
Obtenha o certificado SSL Let's Let's Crypt

6. Digite o endereço de e -mail que será usado por Let's Encrypt for Lost Key Recuperação ou avisos urgentes.

Insira o endereço de e-mail

7. Concorde com os termos da licença pressionando a tecla Enter.

Aceitar Acordo LetSencrypt

8. Finalmente, se tudo foi bem -sucedido, uma mensagem semelhante à captura de tela abaixo deve aparecer em seu console de terminal.

LetSencrypt acaba a instalação

Etapa 3: Instale o Certificado SSL Let's Crypt Crypt no Nginx

9. Agora que seu certificado SSL foi gerado é hora de configurar o Nginx WebServer para usá -lo. Os certificados recém -SSL são colocados em /etc/letSencrypt/Live/ Sob um diretório nomeado após seu nome de domínio. Execute o comando ls para listar os arquivos de certificado emitidos para seu domínio.

$ sudo ls/etc/letsencrypt/vive/$ sudo ls -al/etc/letsencrypt/vive/ceszar.tk 
LetSencrypt SSL Certificados

10. Em seguida, aberto /etc/nginx/sites-disponível/padrão Arquive com um editor de texto e adicione o bloco a seguir após a primeira linha comentada que especifica o início do bloco SSL. Use a captura de tela abaixo como orientação.

$ sudo nano/etc/nginx/sites-habilitados/inadimplacente 

Trecho de bloco nginx:

# Configuração SSL # Ouça 443 SSL default_server; SSL_CERTificate/etc/letsencrypt/Live/Caeszar.TK/FullChain.PEM; ssl_certificate_key/etc/letsencrypt/vive/caeszar.TK/Privkey.PEM; ssl_protocols tlsv1 tlsv1.1 TLSV1.2; ssl_prefer_server_ciphers on; SSL_CIPHERS 'EECDH+AESGCM: EDH+AESGCM: AES256+EECDH: AES256+EDH'; ssl_dhparam/etc/nginx/ssl/dhparams.PEM; 
Configure o nginx para usar let's criprypt ssl

Substitua os valores do nome de domínio para certificados SSL de acordo.

11. Na próxima etapa, gerar um forte Diffie-Hellman cifra in /etc/nginx/ssl/ diretório para proteger seu servidor contra o Logjam ataque executando os seguintes comandos.

$ sudo mkdir/etc/nginx/ssl $ cd/etc/nginx/ssl $ sudo openssl dhparam -out dhparams.PEM 2048 
Gere Diffie Hellman Cipher para Nginx

12. Finalmente, reinicie o daemon nginx para refletir as mudanças.

$ sudo systemctl reinicie nginx 

e teste seu certificado SSL visitando o URL abaixo.

https: // www.ssllabs.com/ssltest/analise.html 
Verifique o nginx permite o certificado SSL CRYPT

Etapa 4: Renovar automaticamente, vamos criptografar os certificados nginx

13. Certificados emitidos por Vamos criptografar CA são válidos por 90 dias. Para renovar automaticamente os arquivos antes da data de vencimento criar SSL-renow.sh Bash Script In /usr/local/bin/ diretório com o seguinte conteúdo.

$ sudo nano/usr/local/bin/ssl-renow.sh 

Adicione o seguinte conteúdo a SSL-renow.sh arquivo.

#!/bin/bash cd/usr/local/letsencrypt sudo ./letSencrypt-AUTO Certonly -a webroot --gree-tos-renew-by-default ---webroot-path =/var/www/html/-d your_domain.tld sudo systemctl recarregar nginx saída 0 
Renovar automaticamente o nginx permite criptografar o certificado SSL

Substitua o --Webroot-Path variável para corresponder à sua raiz do documento nginx. Verifique se o script é executável emitindo o seguinte comando.

$ sudo chmod +x/usr/local/bin/ssl-renow.sh 

14. Por fim, adicione um trabalho de cron para executar o script a cada dois meses à meia -noite, a fim de garantir que seu certificado seja atualizado em aproximadamente 30 dias antes de expirar.

$ sudo crontab -e 

Adicione a seguinte linha na parte inferior do arquivo.

0 1 1 */2 */usr/local/bin/ssl-renow.sh >>/var/log/your_domain.tld-renow.log 2> & 1 
Atualização permite CRPYPT SSL CERTIFICADOS

É isso! Seu servidor nginx agora está servindo conteúdo SSL usando um grátis Vamos criptografar SSL certificado.