bg-tutorials

Como Instalar um Certificado SSL no Apache

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?

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:

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 que é SSL no Apache?

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.

Como saber se o SSL do Apache está ativado?

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

Onde está o ficheiro .conf do SSL no Apache?

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.

Qual é a diferença entre SSLCertificateFile e SSLCertificateChainFile?

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

Uma imagem detalhada de um dragão em voo
Escrito por

I've been building and managing websites for over 20 years, with a heavy focus on the technical side of the cybersecurity, VPN, and SaaS industries. I know how sites are built from the ground up, which means I know how to secure them. Here at SSL Dragon, I write about web architecture, encryption, and keeping your infrastructure safe.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.