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 se aplicam ao Apache 2.4, a linha de versão estável atual.

Índice

Como gerar um código CSR no Apache?

O Certificate Signing Request, ou simplesmente CSR, é um pequeno arquivo de texto contendo informações sobre a propriedade do seu domínio e/ou empresa. Gerar um CSR é parte integrante do processo de compra de SSL, e todas as Autoridades Certificadoras comerciais exigem que os solicitantes de SSL concluam esta etapa.

Você tem duas opções:

Instalar um certificado SSL no Apache

Após a Autoridade Certificadora assinar e enviar o certificado SSL, você pode instalá-lo com segurança no seu servidor Apache. Siga os passos abaixo.

Passo 1: Prepare os arquivos do certificado

Baixe e extraia os arquivos da pasta ZIP recebida da sua Autoridade Certificadora. Normalmente você encontrará:

  • O arquivo .crt – seu certificado SSL principal.
  • O arquivo .ca-bundle – os certificados intermediários (e raiz) que formam a cadeia de confiança. Essa cadeia é necessária para que navegadores e aplicações possam verificar seu certificado. Sem ela, alguns clientes podem sinalizar seu site como não seguro.

Faça o upload desses arquivos, juntamente com a chave privada (.key) gerada junto com o 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 versões mais recentes): combine seu certificado e o CA bundle em um único arquivo de “cadeia completa”. Desde o Apache 2.4.8, a diretiva SSLCertificateFile carrega os certificados intermediários diretamente deste arquivo, razão pela qual a antiga diretiva SSLCertificateChainFile não é mais necessária:

cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt

Se a sua CA entregou os certificados intermediários como arquivos separados, concatene-os com seu certificado primeiro, seguidos pelos intermediários ordenados do que assinou seu certificado até o raiz (o certificado raiz em si é opcional):

cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt

Por exemplo, ao instalar um certificado Sectigo PositiveSSL, você concatenaria seu certificado de domínio com o bundle intermediário da Sectigo. Sempre use os nomes de arquivo exatos fornecidos pela sua CA.

Passo 2: Ative 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 você precisará 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 é carregado automaticamente após a instalação):

sudo dnf install mod_ssl

Passo 3: Localize o arquivo de configuração do Apache

Dependendo do seu sistema operacional e da versão do Apache, a configuração pode estar em arquivos diferentes. Procure por httpd.conf, apache2.conf, ou um arquivo de configuração SSL/site dedicado, em um dos seguintes locais:

  • Debian/Ubuntu: configuração principal em /etc/apache2/apache2.conf; configurações por site em /etc/apache2/sites-available/.
  • RHEL/CentOS/AlmaLinux/Rocky: configuração principal em /etc/httpd/conf/httpd.conf; configuração SSL em /etc/httpd/conf.d/ssl.conf.

Nota: Se o seu servidor Apache estiver rodando no Ubuntu, você também pode seguir nossas instruções dedicadas de instalação de SSL para Ubuntu.

Passo 4: Configure o virtual host

Primeiro, faça um backup do seu arquivo de configuração atual. Assim, se algo der errado, você poderá reverter rapidamente as alterações:

sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup

Agora abra o arquivo de configuração e configure o virtual host HTTPS (porta 443). Um virtual host completo e moderno tem a seguinte aparência:

<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 (enable only after HTTPS works)
    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, o document root e os caminhos dos arquivos pelos seus próprios valores. Veja o que as principais diretivas fazem:

  • SSLEngine on – ativa SSL/TLS para este virtual host.
  • SSLCertificateFile – caminho para o arquivo de cadeia completa (certificado + intermediários) criado no Passo 1. No Apache 2.4.8+, esta única diretiva substitui a SSLCertificateChainFile obsoleta.
  • SSLCertificateKeyFile – caminho para a sua chave privada, gerada junto 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 se conectarem apenas via HTTPS. Requer o mod_headers (ativado no Passo 2). Ative somente após confirmar que o HTTPS está funcionando corretamente.

Certifique-se de que nenhuma dessas linhas começa com # (o que as comentaria). No Debian/Ubuntu, ${APACHE_LOG_DIR} resolve para /var/log/apache2; em sistemas baseados em RHEL, use /var/log/httpd/ em vez disso.

Servidores legados: Se você estiver usando uma versão do Apache anterior à 2.4.8, mantenha o certificado e a cadeia em arquivos 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 é preferida.

Proteção avançada (opcional): para um conjunto de cifras mais robusto e OCSP stapling, gere uma configuração personalizada com o Mozilla SSL Configuration Generator. O OCSP stapling também requer uma diretiva SSLStaplingCache na sua configuração global do Apache.

Passo 5: Redirecionar HTTP para HTTPS

Para garantir que os visitantes sempre acessem a 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: Teste sua configuração e reinicie o Apache

Sempre teste sua configuração antes de reiniciar. Um erro de sintaxe pode deixar seu site offline, portanto execute:

sudo apachectl configtest

Se tudo estiver correto, você verá:

Syntax OK

Agora aplique as alterações recarregando o Apache (um reload ativa a nova configuração sem interromper as conexões existentes):

sudo systemctl reload apache2     # Debian/Ubuntu
sudo systemctl reload httpd       # RHEL/CentOS/AlmaLinux/Rocky

Se um reload 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! Seu site agora está protegido com SSL/TLS.

Testar a instalação do SSL

Após instalar o certificado SSL no Apache, verifique se tudo está funcionando conforme o esperado. Uma verificação instantânea revelará quaisquer erros ou vulnerabilidades que possam afetar o desempenho do seu certificado. Use nossa ferramenta SSL Checker para verificar o status da sua instalação.

Você também pode confirmar o certificado e sua cadeia diretamente pela linha de comando:

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 é na SSL Dragon. Oferecemos preços e descontos imbatíveis em toda a nossa linha de produtos SSL, e selecionamos cuidadosamente as melhores marcas de SSL do mercado para equipar seu site com proteção à prova de falhas. Todos os nossos certificados SSL são compatíveis com Apache. Obtenha um certificado SSL agora!

Tenha em mente que os prazos de validade dos certificados SSL/TLS estão diminuindo: a validade máxima cai para 200 dias em março de 2026, 100 dias em 2027 e apenas 47 dias em 2029. Ciclos de vida mais curtos significam renovações mais frequentes, por isso vale a pena planejar seu processo de renovação (e automação) com antecedência.

Perguntas Frequentes

O que é SSL no Apache?

SSL (Secure Sockets Layer), atualmente sucedido pelo TLS (Transport Layer Security), é um protocolo criptográfico que cifra a comunicação entre dois endpoints 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, pesquise na configuração pela diretiva do protocolo SSL:

grep -ir SSLProtocol /etc/apache2/

Se o SSL estiver configurado, você verá uma saída semelhante a:

/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3

Você também pode confirmar que o módulo SSL está carregado no servidor em execução:

apachectl -M | grep ssl

Onde fica o arquivo SSL .conf no Apache?

O arquivo de configuração pode estar em locais diferentes dependendo do seu sistema operacional e configuração. No Debian/Ubuntu, verifique /etc/apache2/apache2.conf e os arquivos 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 arquivo também pode conter os certificados intermediários, servindo assim a cadeia completa. SSLCertificateChainFile era a forma antiga de fornecer esses intermediários separadamente, mas foi descontinuada desde o Apache 2.4.8. Em qualquer servidor moderno, coloque o certificado e os intermediários em um único arquivo e referencie-o 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.