Como Configurar o WordPress com SSL Autoassinado no Ubuntu com Apache

A segurança é um dos aspectos mais importantes na gestão de um site, e o uso de SSL (Secure Sockets Layer) para criptografar a comunicação entre o navegador e o servidor é uma das melhores práticas. Embora seja recomendado utilizar um certificado SSL emitido por uma autoridade certificadora (CA) em produção, é possível usar um certificado autoassinado para fins de desenvolvimento ou ambientes internos.

Neste guia, vamos configurar o WordPress com um certificado SSL autoassinado no Ubuntu com o servidor Apache.

Pré-requisitos

Antes de começar, você precisará:

  • Um servidor Ubuntu com Apache e OpenSSL instalados.
  • WordPress já instalado e funcionando.
  • Acesso de superusuário (root) ou permissões sudo.

Passo 1: Instalar o OpenSSL e Apache

Se ainda não tiver o OpenSSL ou o Apache instalados, use o seguinte comando:

sudo apt update
sudo apt install apache2 openssl

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

Vamos gerar a chave privada e o certificado SSL autoassinado usando o OpenSSL.

  1. Criar a chave privada: No terminal, execute:
   openssl genrsa -out /etc/ssl/private/chave-privada.key 2048

Esse comando gera uma chave privada de 2048 bits e a salva no diretório /etc/ssl/private/.

  1. Criar uma solicitação de assinatura de certificado (CSR): Execute o comando abaixo para gerar um CSR:
   openssl req -new -key /etc/ssl/private/chave-privada.key -out /etc/ssl/private/requisicao.csr

Preencha as informações solicitadas, como nome da sua organização e nome comum (geralmente, o domínio do site).

  1. Gerar o certificado SSL autoassinado: Agora, crie o certificado autoassinado com o comando:
   openssl x509 -req -days 365 -in /etc/ssl/private/requisicao.csr -signkey /etc/ssl/private/chave-privada.key -out /etc/ssl/certs/certificado.crt

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

Passo 3: Configurar o Apache para Usar o Certificado SSL

Agora, precisamos configurar o Apache para usar o certificado SSL autoassinado.

  1. Habilitar o módulo SSL do Apache: Primeiro, ative o módulo SSL no Apache com o seguinte comando:
   sudo a2enmod ssl

Em seguida, reinicie o Apache para aplicar as alterações:

   sudo systemctl restart apache2
  1. Criar uma configuração de Virtual Host para o WordPress com SSL: Agora, crie um arquivo de configuração de virtual host para habilitar o SSL no site WordPress. Vamos criar um arquivo específico para o site WordPress com SSL:
   sudo nano /etc/apache2/sites-available/wordpress-ssl.conf

Adicione o seguinte conteúdo ao arquivo:

   <VirtualHost *:443>
       ServerAdmin admin@seudominio.com
       ServerName seusite.com
       ServerAlias www.seusite.com
       DocumentRoot /var/www/wordpress

       SSLEngine on
       SSLCertificateFile /etc/ssl/certs/certificado.crt
       SSLCertificateKeyFile /etc/ssl/private/chave-privada.key

       <Directory /var/www/wordpress/>
           AllowOverride All
       </Directory>

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
   </VirtualHost>

Esse arquivo configura o Apache para servir seu site WordPress sobre HTTPS, utilizando o certificado e a chave que você gerou anteriormente.

  1. Ativar o novo Virtual Host e SSL: Ative a configuração SSL com o comando:
   sudo a2ensite wordpress-ssl.conf

Em seguida, reinicie o Apache:

   sudo systemctl restart apache2

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

Agora que o SSL está habilitado, o próximo passo é garantir que todas as conexões com o WordPress sejam feitas via HTTPS.

  1. Atualizar o arquivo .htaccess: Para forçar o uso de HTTPS em todo o site, adicione a seguinte regra de redirecionamento ao arquivo .htaccess do WordPress:
   sudo nano /var/www/wordpress/.htaccess

Adicione as seguintes linhas ao início do arquivo:

   <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{HTTPS} off
       RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
   </IfModule>

Essas linhas forçam automaticamente todos os usuários a serem redirecionados para a versão HTTPS do site.

  1. 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.

Passo 5: Testar o SSL Autoassinado

Agora, abra seu navegador e acesse seu site WordPress usando https://. Como o certificado é autoassinado, seu navegador provavelmente exibirá um aviso de que o certificado não é confiável. Esse comportamento é normal para certificados autoassinados. Em um ambiente de desenvolvimento, você pode ignorar esse aviso.

Passo 6: Considerações Finais

O uso de certificados SSL autoassinados é uma solução prática para ambientes de teste e desenvolvimento. No entanto, eles não devem ser usados em produção, já que não são reconhecidos por navegadores modernos e causarão avisos de segurança para os usuários. Para ambientes de produção, recomenda-se usar um certificado SSL emitido por uma autoridade certificadora, como o Let’s Encrypt, que oferece certificados gratuitos e confiáveis.

Com este guia, você agora tem o WordPress funcionando com SSL autoassinado em um servidor Ubuntu com Apache. Isso garantirá que as conexões sejam criptografadas e seguras, ao menos em um ambiente de desenvolvimento ou de testes.

Edvaldo Guimrães Filho Avatar

Published by

Categories:

Leave a comment