Como Configurar o WordPress com SSL Autoassinado no Ubuntu com Nginx

Para proteger a comunicação entre o servidor e o cliente, a configuração de um certificado SSL é fundamental. Isso garante que todas as informações enviadas entre o navegador e o servidor estejam criptografadas. Embora um certificado SSL emitido por uma autoridade certificadora (CA) seja ideal para sites de produção, você pode usar um certificado autoassinado para fins de desenvolvimento e testes.

Neste guia, vamos mostrar como configurar o WordPress com um SSL autoassinado no Ubuntu utilizando o servidor Nginx.

Pré-requisitos

Antes de começar, você precisa:

  • Um servidor Ubuntu com Nginx e OpenSSL instalados.
  • WordPress já instalado e rodando.
  • Acesso ao servidor com privilégios de superusuário (root) ou sudo.

Passo 1: Instalar o OpenSSL e Nginx

Se o OpenSSL e o Nginx ainda não estiverem instalados, execute os seguintes comandos:

sudo apt update
sudo apt install nginx openssl

Passo 2: Criar a Chave Privada e o Certificado SSL Autoassinado

Usaremos o OpenSSL para gerar uma chave privada e um certificado SSL autoassinado.

  1. Criar a chave privada: No terminal, execute o seguinte comando para gerar uma chave privada de 2048 bits:
   openssl genrsa -out /etc/ssl/private/chave-privada.key 2048
  1. Criar a solicitação de assinatura de certificado (CSR): Em seguida, gere uma Solicitação de Assinatura de Certificado (CSR), que contém informações sobre o seu site.
   openssl req -new -key /etc/ssl/private/chave-privada.key -out /etc/ssl/private/requisicao.csr

O terminal pedirá informações como o nome da sua organização, o país e o domínio (o Common Name deve ser o domínio do seu site, como www.seusite.com).

  1. Gerar o certificado autoassinado: Com a chave privada e o CSR gerados, crie o certificado autoassinado:
   openssl x509 -req -days 365 -in /etc/ssl/private/requisicao.csr -signkey /etc/ssl/private/chave-privada.key -out /etc/ssl/certs/certificado.crt

Esse comando gera um certificado válido por um ano (365 dias). O certificado será salvo no diretório /etc/ssl/certs/.

Passo 3: Configurar o Nginx para Usar o Certificado SSL

Agora que o certificado SSL foi gerado, vamos configurar o Nginx para usá-lo com o WordPress.

  1. Editar o arquivo de configuração do Nginx: No Nginx, cada site tem um arquivo de configuração virtual. Vamos editar o arquivo de configuração do seu site WordPress, que geralmente está localizado em /etc/nginx/sites-available/. Abra o arquivo de configuração do seu site:
   sudo nano /etc/nginx/sites-available/wordpress

Adicione a seguinte configuração SSL dentro do bloco server:

   server {
       listen 443 ssl;
       server_name www.seusite.com;

       root /var/www/wordpress;
       index index.php index.html index.htm;

       ssl_certificate /etc/ssl/certs/certificado.crt;
       ssl_certificate_key /etc/ssl/private/chave-privada.key;

       location / {
           try_files $uri $uri/ /index.php?$args;
       }

       location ~ \.php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
       }

       location ~ /\.ht {
           deny all;
       }
   }

Nesta configuração:

  • O certificado SSL está em /etc/ssl/certs/certificado.crt.
  • A chave privada está em /etc/ssl/private/chave-privada.key.
  • O bloco listen 443 ssl especifica que o servidor está escutando na porta 443, que é usada para conexões HTTPS.
  1. Redirecionar HTTP para HTTPS (opcional, mas recomendado): Para garantir que todo o tráfego HTTP seja redirecionado para HTTPS, você pode adicionar um bloco server separado que redireciona todo o tráfego HTTP para HTTPS:
   server {
       listen 80;
       server_name www.seusite.com;

       return 301 https://$host$request_uri;
   }
  1. Testar a configuração do Nginx: Depois de editar os arquivos de configuração, é importante verificar se não há erros:
   sudo nginx -t

Se não houver erros, reinicie o Nginx para aplicar as alterações:

   sudo systemctl restart nginx

Passo 4: Forçar o Uso de HTTPS no WordPress

Agora que o SSL está habilitado, precisamos garantir que o WordPress use sempre HTTPS.

  1. Atualizar o arquivo .htaccess (caso o seu WordPress use permalinks personalizados): Para forçar o uso de HTTPS, você pode adicionar uma regra ao arquivo .htaccess do WordPress. No entanto, como estamos usando Nginx (que não lida diretamente com .htaccess), o redirecionamento para HTTPS foi configurado diretamente no arquivo do Nginx no passo anterior.
  2. Atualizar o URL do WordPress: Acesse o painel de administração do WordPress (http://seusite.com/wp-admin), vá até Configurações > Geral e atualize os campos Endereço do WordPress (URL) e Endereço do site (URL) para https://seusite.com.
  3. Configurar o plugin Really Simple SSL (opcional, mas recomendado): Para garantir que todos os links no WordPress utilizem HTTPS, você pode instalar o plugin Really Simple SSL. Ele detecta automaticamente sua configuração SSL e força o uso de HTTPS em todas as páginas. Instale o plugin diretamente do painel do WordPress:
  • Vá até Plugins > Adicionar novo.
  • Procure por “Really Simple SSL”.
  • Instale e ative o plugin.

Passo 5: Testar o SSL Autoassinado

Agora, abra seu navegador e acesse seu site WordPress usando https://. Como você está usando um certificado autoassinado, seu navegador exibirá um aviso de segurança, informando que o certificado não é confiável. Esse comportamento é esperado em certificados autoassinados e pode ser ignorado para ambientes de desenvolvimento.

Passo 6: Considerações Finais

Certificados SSL autoassinados são ótimos para testes e desenvolvimento, mas para ambientes de produção, recomenda-se o uso de um certificado SSL emitido por uma CA confiável, como o Let’s Encrypt, que fornece certificados gratuitos. Um certificado de uma autoridade confiável elimina os avisos de segurança nos navegadores e proporciona maior confiança aos usuários.

Com este guia, você conseguiu configurar o WordPress com um SSL autoassinado no Nginx em um ambiente Ubuntu, garantindo que suas conexões sejam criptografadas e seguras em seu ambiente de desenvolvimento.

Edvaldo Guimrães Filho Avatar

Published by

Categories:

Leave a comment