Neste guia, você aprenderá como instalar um certificado SSL no Apache, passo a passo. As instruções aplicam-se ao Apache 2.4, a linha de lançamento estável atual.
Índice
- Como gerar um código CSR no Apache?
- Instalar um certificado SSL no Apache
- Testar a sua instalação SSL
- Onde comprar um certificado SSL para Apache?
Como gerar um código CSR no Apache?
O Certificate Signing Request, ou simplesmente CSR, é um pequeno ficheiro de texto que contém informações sobre a propriedade do seu domínio e/ou empresa. Gerar um CSR é uma parte integral do processo de compra de SSL, e todas as Autoridades de Certificação comerciais exigem que os candidatos a SSL concluam esta etapa.
Você tem duas opções:
- Gerar o CSR automaticamente usando o nosso Gerador de CSR.
- Seguir o nosso tutorial passo a passo sobre como criar o CSR no Apache.
Instalar um certificado SSL no Apache
Depois de a Autoridade de Certificação assinar e lhe enviar o certificado SSL, pode instalá-lo com segurança no seu servidor Apache. Siga os passos abaixo.
Passo 1: Prepare os ficheiros do seu certificado
Baixe e extraia os ficheiros da pasta ZIP que recebeu da sua Autoridade de Certificação. Normalmente, encontrará:
- O ficheiro .crt – o seu certificado SSL principal.
- O ficheiro .ca-bundle – os certificados intermédios (e raiz) que formam a cadeia de confiança. Esta cadeia é necessária para que os navegadores e aplicações possam verificar o seu certificado. Sem ela, alguns clientes podem sinalizar o seu site como não seguro.
Carregue estes ficheiros, juntamente com a chave privada (.key) que gerou ao lado do seu CSR, para um diretório seguro no seu servidor, por exemplo /etc/ssl/. Mantenha a chave privada legível apenas pelo root (chmod 600).
Recomendado (Apache 2.4.8 e mais recente): combine o seu certificado e o pacote da CA num único ficheiro de “cadeia completa”. Desde o Apache 2.4.8, a diretiva SSLCertificateFile carrega os certificados intermédios diretamente a partir deste ficheiro, razão pela qual a antiga diretiva SSLCertificateChainFile já não é necessária:
cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt
Se a sua CA entregou os certificados intermédios como ficheiros separados, concatene-os primeiro com o seu certificado, seguido dos intermédios ordenados desde aquele que assinou o seu certificado até à raiz (o próprio certificado raiz é opcional):
cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt
Por exemplo, ao instalar um certificado Sectigo PositiveSSL, deve concatenar o certificado do seu domínio com o pacote intermédio da Sectigo. Utilize sempre os nomes exatos dos ficheiros fornecidos pela sua CA.
Passo 2: Ativar o módulo SSL (mod_ssl)
Antes de configurar o HTTPS, certifique-se de que o módulo SSL do Apache está ativado.
No Debian/Ubuntu, ative o mod_ssl (e o mod_headers, que será necessário para o cabeçalho HSTS no Passo 4):
sudo a2enmod ssl
sudo a2enmod headers
No RHEL/CentOS/AlmaLinux/Rocky Linux, instale o pacote do módulo SSL (o módulo carrega automaticamente uma vez instalado):
sudo dnf install mod_ssl
Passo 3: Localizar o ficheiro de configuração do Apache
Dependendo do seu sistema operativo e versão do Apache, a configuração pode estar em ficheiros diferentes. Procure por httpd.conf, apache2.conf, ou um ficheiro de configuração SSL/site dedicado, num dos seguintes locais:
- Debian/Ubuntu: configuração principal /etc/apache2/apache2.conf; configurações por site em /etc/apache2/sites-available/.
- RHEL/CentOS/AlmaLinux/Rocky: configuração principal /etc/httpd/conf/httpd.conf; configuração SSL /etc/httpd/conf.d/ssl.conf.
Nota: Se o seu servidor Apache estiver a ser executado no Ubuntu, também pode seguir as nossas instruções dedicadas de instalação de SSL para Ubuntu.
Passo 4: Configurar o virtual host
Primeiro, faça uma cópia de segurança do seu ficheiro de configuração atual. Assim, se algo correr mal, pode reverter rapidamente as suas alterações:
sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup
Agora abra o ficheiro de configuração e configure o virtual host HTTPS (porta 443). Um virtual host completo e moderno tem este aspeto:
<VirtualHost *:443>
ServerName www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example
SSLEngine on
# Apache 2.4.8+ : server certificate + intermediate chain in ONE file
SSLCertificateFile /etc/ssl/example_com_fullchain.crt
SSLCertificateKeyFile /etc/ssl/example_com.key
# Recommended TLS hardening (2026)
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder off
# Tell browsers to always use HTTPS. Remove the leading # to enable HSTS,
# but only after you have confirmed HTTPS works correctly:
# Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
Substitua example.com, a raiz do documento, e os caminhos dos ficheiros pelos seus próprios valores. Aqui está o que fazem as diretivas principais:
- SSLEngine on – ativa o SSL/TLS para este virtual host.
- SSLCertificateFile – caminho para o seu ficheiro de cadeia completa (certificado + intermédios) criado no Passo 1. No Apache 2.4.8+, esta única diretiva substitui a diretiva obsoleta SSLCertificateChainFile.
- SSLCertificateKeyFile – caminho para a sua chave privada, gerada em conjunto com o CSR.
- SSLProtocol -all +TLSv1.2 +TLSv1.3 – desativa os protocolos SSL/TLS antigos e inseguros e permite apenas TLS 1.2 e TLS 1.3.
- Strict-Transport-Security (HSTS) – instrui os navegadores a ligarem-se apenas por HTTPS. Requer o mod_headers (ativado no Passo 2). Ative-o apenas depois de confirmar que o HTTPS funciona corretamente.
Certifique-se de que nenhuma destas linhas começa com um # (o que as comentaria). No Debian/Ubuntu, ${APACHE_LOG_DIR} corresponde a /var/log/apache2; em sistemas baseados em RHEL, use /var/log/httpd/ em vez disso.
Servidores antigos: Se estiver limitado a uma versão do Apache anterior à 2.4.8, mantenha o certificado e a cadeia em ficheiros separados e adicione a diretiva obsoleta SSLCertificateChainFile /etc/ssl/example_com.ca-bundle abaixo de SSLCertificateFile. Em qualquer servidor moderno, a abordagem de cadeia completa acima é preferível.
Reforço avançado (opcional): para um conjunto de cifras mais forte e OCSP stapling, gere uma configuração personalizada com o Gerador de Configuração SSL da Mozilla. O OCSP stapling também requer uma diretiva SSLStaplingCache na configuração global do Apache.
Ative o site: No Debian/Ubuntu, um virtual host colocado em /etc/apache2/sites-available/ não é carregado até que o ative. Se guardou esta configuração como um novo ficheiro (por exemplo example-ssl.conf), ative-o com:
sudo a2ensite example-ssl.conf
Pode editar o ficheiro default-ssl.conf fornecido por padrão, mas este também tem de ser ativado com a2ensite default-ssl. No RHEL/CentOS/AlmaLinux/Rocky, os ficheiros em /etc/httpd/conf.d/ carregam automaticamente — mas note que ssl.conf já inclui um bloco padrão <VirtualHost _default_:443> com um certificado autoassinado, por isso edite esse bloco ou adicione o seu virtual host como um ficheiro separado, como /etc/httpd/conf.d/yourdomain.conf, para evitar dois hosts sobrepostos na porta 443.
Passo 5: Redirecionar HTTP para HTTPS
Para garantir que os visitantes sempre acedem à versão segura do seu site, adicione um segundo virtual host na porta 80 que redirecione permanentemente todo o tráfego HTTP para HTTPS:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
Passo 6: Testar a sua configuração e reiniciar o Apache
Teste sempre a sua configuração antes de reiniciar. Um erro de sintaxe pode colocar o seu site offline, por isso execute:
sudo apachectl configtest
Se tudo estiver correto, verá:
Syntax OK
Agora aplique as alterações recarregando o Apache (um recarregamento ativa a nova configuração sem interromper as ligações existentes):
sudo systemctl reload apache2 # Debian/Ubuntu
sudo systemctl reload httpd # RHEL/CentOS/AlmaLinux/Rocky
Se um recarregamento não for suficiente, reinicie o serviço (sudo systemctl restart apache2 ou httpd). Em sistemas mais antigos sem systemd, use sudo apachectl graceful.
Se a instalação foi bem-sucedida, parabéns! O seu site está agora protegido com SSL/TLS.
Testar a sua instalação SSL
Depois de instalar o seu certificado SSL no Apache, verifique se tudo funciona como esperado. Uma verificação instantânea revelará quaisquer erros ou vulnerabilidades que possam afetar o desempenho do seu certificado. Utilize a nossa ferramenta SSL Checker para verificar o estado da sua instalação.
Também pode confirmar o certificado e a sua cadeia diretamente através da linha de comandos:
openssl s_client -connect www.example.com:443 -servername www.example.com
Onde comprar um certificado SSL para Apache?
O melhor lugar para obter um certificado SSL para Apache é a SSL Dragon. Oferecemos preços e descontos imbatíveis em toda a nossa gama de produtos SSL, e selecionámos cuidadosamente as melhores marcas de SSL do mercado para equipar o seu site com uma proteção à prova de balas. Todos os nossos certificados SSL são compatíveis com o Apache. Obtenha um certificado SSL agora!
Tenha em mente que a validade dos certificados SSL/TLS está a diminuir: a validade máxima cai para 200 dias em março de 2026, 100 dias em 2027, e apenas 47 dias até 2029. Ciclos de vida mais curtos significam renovações mais frequentes, por isso vale a pena planear com antecedência o seu processo de renovação (e a sua automação).
Perguntas Frequentes
O SSL (Secure Sockets Layer), agora sucedido pelo TLS (Transport Layer Security), é um protocolo criptográfico que encripta a comunicação entre dois pontos de rede, por exemplo um servidor web como o Apache e o navegador de um utilizador.
Nas distribuições Debian e Ubuntu, procure na configuração pela diretiva do protocolo SSL:grep -ir SSLProtocol /etc/apache2/
Se o SSL estiver configurado, verá um resultado semelhante a:/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3
Também pode confirmar que o módulo SSL está carregado no servidor em execução:apachectl -M | grep ssl
O ficheiro de configuração pode estar em locais diferentes dependendo do seu SO e configuração. No Debian/Ubuntu, verifique /etc/apache2/apache2.conf e os ficheiros por site em /etc/apache2/sites-available/. No RHEL/CentOS/AlmaLinux/Rocky, verifique /etc/httpd/conf/httpd.conf e /etc/httpd/conf.d/ssl.conf.
SSLCertificateFile aponta para o certificado do seu servidor. Desde o Apache 2.4.8, o mesmo ficheiro também pode conter os certificados intermédios, servindo assim a cadeia completa. SSLCertificateChainFile era a forma antiga de fornecer esses intermédios separadamente, mas está obsoleta desde o Apache 2.4.8. Em qualquer servidor moderno, coloque o certificado e os intermédios num único ficheiro e faça referência a ele apenas com SSLCertificateFile.
Economize 10% em certificados SSL ao fazer seu pedido hoje!
Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10


