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

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.