Nginx

Configuração Nginx SSL no Linux

Configuração Nginx SSL no Linux

SSL (significa secure socket layer) é um protocolo da web que torna o tráfego entre o servidor e o cliente seguro, criptografando-o. O servidor e os clientes transmitem o tráfego com segurança, sem o risco de a comunicação ser interpretada por terceiros. Também ajuda o cliente a verificar a identidade do site com o qual está se comunicando.

Nesta postagem, descreveremos como configurar SSL para Nginx. Estaremos demonstrando o procedimento usando o certificado autoassinado. Um certificado autoassinado apenas criptografa a conexão, mas não valida a identidade do seu servidor. Portanto, ele deve ser usado apenas para ambientes de teste ou para serviços de LAN internos. Para o ambiente de produção, é melhor usar os certificados assinados pela CA (autoridade de certificação).

Pré-requisitos

Para esta postagem, você deve ter os seguintes pré-requisitos:

O procedimento explicado aqui foi realizado em Debian 10 (Buster) máquina.

Etapa 1: Gerando um certificado autoassinado

Nossa primeira etapa será gerar um certificado autoassinado. Emita o comando abaixo no Terminal para gerar CSR (Solicitação de Assinatura de Certificado) e uma chave:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout / etc / ssl / private / selfsigned-nginx.key -out / etc / ssl / certs / selfsigned-nginx.crt

Você será solicitado a fornecer algumas informações como nome de seu país, estado, localidade, nome comum (seu nome de domínio ou endereço IP) e endereço de e-mail.

No comando acima, o OpenSSL criará os dois arquivos a seguir:

Agora crie o dhparam.arquivo pem usando o comando abaixo:

$ sudo openssl dhparam -out / etc / ssl / certs / dhparam.pem 2048

Etapa 2: configurar o Nginx para usar SSL

Na etapa anterior, criamos o CSR e a chave. Agora nesta etapa, vamos configurar o Nginx para usar SSL. Para isso, criaremos um snippet de configuração e adicionaremos informações sobre nossos arquivos de certificado SSL e localizações de chaves.

Emita o comando abaixo no Terminal para criar um novo trecho de configuração autoassinado.arquivo conf no / etc / nginx / snippets.

$ sudo nano / etc / nginx / snippets / autoassinado.conf

No arquivo, adicione as seguintes linhas:

ssl_certificate / etc / ssl / certs / selfsigned-nginx.crt;
ssl_certificate_key / etc / ssl / private / selfsigned-nginx.chave;

O ssl_certificate está configurado para selfsigned-nginx.crt (arquivo de certificado) enquanto o ssl_certificate_key está configurado para selfsigned-nginx.chave (arquivo de chave).

Salve e feche o autoassinado.conf Arquivo.

Agora vamos criar outro arquivo de snippet ssl-params.conf e definir algumas configurações básicas de SSL. Emita o comando abaixo no Terminal para editar o ssl-params.conf Arquivo:

$ sudo nano / etc / nginx / snippets / ssl-params.conf

Adicione o seguinte conteúdo ao arquivo:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers ativado;
ssl_dhparam / etc / ssl / certs / dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512: DHE-RSA-AES256-GCM-SHA512: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-GCM-SHA384: ECDHE-RSA-AES256;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache compartilhado: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling on;
# ssl_stapling_verify on;
resolvedor 8.8.8.8 8.8.4.4 válido = 300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; modo = bloco";

Como não estamos usando um certificado assinado por CA, desativamos o grampeamento SSL. Se você estiver usando um certificado assinado por CA, descomente o ssl_stapling entrada.

Etapa 3: Configurar o Nginx para usar SSL

Agora vamos abrir o arquivo de configuração do bloco do servidor Nginx para fazer algumas configurações.  Nesta etapa, assumiremos que você já configurou o bloco de servidor, que será semelhante a este:

servidor
escute 80;
ouvir [::]: 80;
root / var / www / test.org / html;
índice de índice.índice html.índice htm.nginx-debian.html;
server_name test.org www.teste.org;
localização /
try_files $ uri $ uri / = 404;

Para abrir o arquivo de configuração do bloco do servidor Nginx, use o comando abaixo:

$ sudo nano / etc / nginx / sites-available / test.org

Agora modifique o existente servidor bloco para torná-lo parecido com este:

servidor
ouvir 443 ssl;
ouvir [::]: 443 ssl;
incluir snippets / autoassinado.conf;
incluir snippets / ssl-params.conf;
root / var / www / test.org / html;
índice de índice.índice html.índice htm.nginx-debian.html;
server_name test.org www.teste.org;

Nas configurações acima, também adicionamos os snippets SSL autoassinado.conf e ssl-params.conf que configuramos anteriormente.

Em seguida, adicione um segundo servidor quadra.

servidor
escute 80;
ouvir [::]: 80;
server_name test.org www.teste.org;
return 302 https: // $ server_name $ request_uri;

Na configuração acima, retorno 302 redireciona o HTTP para HTTPS.

Observação: Certifique-se de substituir o teste.org com seu próprio nome de domínio. Agora salve e feche o arquivo.

Etapa 4: permitir tráfego SSL por meio do firewall

Se um firewall estiver habilitado em seu sistema, você terá que permitir o tráfego SSL através dele.  Nginx oferece três perfis diferentes com ufw. Você pode visualizá-los usando o comando abaixo no Terminal:

lista de aplicativos $ sudo ufw

Você verá a seguinte saída com três perfis para o tráfego Nginx.

Você precisará permitir o perfil “Nginx Full” no firewall. Para fazer isso, use o comando abaixo:

$ sudo ufw allow 'Nginx Full'

Para verificar se o perfil foi permitido no firewall, use o comando abaixo:

$ sudo ufw status

Etapa 5: teste o arquivo de configuração NGINX

Agora teste o arquivo de configuração Nginx usando o comando abaixo no Terminal:

$ sudo nginx -t

Você deve ver a saída abaixo.


Agora crie o link simbólico entre sites disponíveis e sites habilitados:

$ ln -s / etc / nginx / sites-available / test.com / etc / nginx / sites-enabled /

Em seguida, reinicie o serviço Nginx para aplicar as alterações de configuração. Use o comando abaixo para fazer isso:

$ sudo systemctl restart nginx

Etapa 6: teste SSL

Agora, para testar o SSL, navegue até o seguinte endereço:

https: // domínio ou endereço IP

Como configuramos o certificado autoassinado, veremos um aviso de que a conexão não é segura. A página a seguir aparece ao usar o navegador Mozilla Firefox.

Clique no Avançado botão.

Clique Adicione exceção.

Então clique Confirme a exceção de segurança.

Agora você verá seu site HTTPS, mas com um sinal de alerta (cadeado com um sinal de alerta amarelo) sobre a segurança do seu site.

Além disso, verifique se o redirecionamento funciona corretamente acessando seu domínio ou endereço IP usando http.

http: // domínio ou endereço IP

Agora, se o seu site redireciona automaticamente para HTTPS, isso significa que o redirecionamento funcionou corretamente. Para configurar o redirecionamento permanentemente, edite o arquivo de configuração do bloco de servidor usando o comando abaixo no Terminal:

$ sudo nano / etc / nginx / sites-available / test.org

Agora mude o retorno 302 para retornar 301 no arquivo e, em seguida, salve e feche-o.

É assim que você pode configurar SSL para Nginx no sistema Debian 10. Configuramos o certificado autoassinado para demonstração. Se você estiver em um ambiente de produção, sempre procure um certificado CA.

Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...
Top 5 cartas de captura de jogos
Todos nós vimos e amamos streaming de jogos no YouTube. PewDiePie, Jakesepticye e Markiplier são apenas alguns dos melhores jogadores que ganharam mil...
Como desenvolver um jogo no Linux
Uma década atrás, poucos usuários de Linux preveriam que seu sistema operacional favorito um dia seria uma plataforma de jogos popular para videogames...