Quero instalar um certificado SSL/TLS autoassinado na minha instância Ubuntu do Amazon Elastic Compute Cloud (Amazon EC2) que hospeda um servidor Apache.
Resolução
Pré-requisito: certifique-se de que os grupos de segurança da instância permitam tráfego nas portas 80 e 443.
Instalar o servidor web Apache e OpenSSL
Para instalar o Apache e o OpenSSL em seu servidor, execute o seguinte comando:
sudo apt-get install apache2 openssl -y
Gerar um certificado autoassinado
Conclua as etapas a seguir:
-
O SSL/TLS usa chaves públicas e privadas. Para criar uma chave privada para seu domínio e uma solicitação de assinatura de certificado (CSR), execute o seguinte comando:
sudo openssl req -nodes -newkey rsa:2048 -keyout /etc/ssl/private/private.key -out /etc/ssl/private/request.csr
-
Para gerar um certificado SSL/TLS, execute o seguinte comando:
sudo openssl x509 -in /etc/ssl/private/request.csr -out /etc/ssl/private/certificate.crt -req -signkey /etc/ssl/private/private.key -days 365
Agora é possível usar os arquivos de chave (private.key) e certificado (certificate.crt) com o servidor web Apache.
Configurar o Apache para usar SSL/TLS
Para configurar o Apache para usar o certificado autoassinado que você criou, conclua as seguintes etapas:
-
Execute o comando a seguir para abrir o arquivo de configuração padrão do Apache SSL:
sudo vi /etc/apache2/sites-available/default-ssl.conf
-
Use os seguintes caminhos para definir a localização do seu certificado SSL:
Para SSLCertificateFile, use /etc/ssl/private/certificate.crt.
Para SSLCertificateKeyFile, use /etc/ssl/private/private.key.
-
Salve e feche o arquivo. Em seguida, execute o seguinte comando para ativar o arquivo do host virtual:
sudo a2ensite default-ssl.conf
-
Para abrir o arquivo de configuração padrão do host virtual para Apache, execute o seguinte comando:
sudo vi /etc/apache2/sites-available/000-default.conf
-
Para adicionar um redirecionamento ao seu nome de domínio, adicione a seguinte linha ao arquivo etc/apache2/sites-available/000-default.conf:
Redirect "/" https://Server-IP
Observação: substitua Server-IP pelo endereço IP do seu servidor. É uma prática recomendada inserir a linha anterior após a linha DocumentRoot. O redirecionamento encaminha todo o tráfego para a versão SSL/TLS do site.
-
Para ativar os módulos SSL/TLS e de cabeçalho, execute o seguinte comando:
sudo a2enmod ssl
sudo a2enmod headers
-
Execute o comando a seguir para recarregar o serviço Apache e aplicar as modificações:
sudo systemctl reload apache2
Verificar o servidor SSL/TLS
Conclua as etapas a seguir:
- Inicie seu navegador da web.
- Abra https://Server-IP.
Observação: substitua Server-IP pelo endereço IP do seu servidor. O navegador da web redireciona você para uma página de aviso. Esse comportamento é esperado porque uma autoridade de certificação confiável não assinou seu certificado.
- Escolha Prosseguir para host para abrir a página inicial do Apache. Um cadeado que diz não seguro aparece na barra de endereço do navegador. Isso mostra que o certificado não está validado, mas criptografa sua conexão.
Para obter mais informações sobre como configurar o SSL/TLS no Red Hat Enterprise Linux (RHEL) ou no Community Enterprise Linux, consulte Setting up a webserver to use HTTPS (Configurar um servidor web para usar HTTPS) no site da Red Hat. Ou, se você usa o Amazon Linux, consulte a configuração SSL/TLS para Amazon Linux 1 (AL1), Amazon Linux 2 (AL2) ou Amazon Linux 2023 (AL2023).