Neste guia, você aprenderá como instalar um certificado SSL no CentOS e nos seus sucessores da família RHEL (AlmaLinux, Rocky Linux e CentOS Stream) usando o servidor web Apache httpd.
Também gravamos um vídeo que o guia por todo o processo. Se preferir a versão em texto, continue lendo abaixo.
Gerar um código CSR
Ao solicitar um certificado SSL, você primeiro gera um CSR (Certificate Signing Request) e o envia à Autoridade Certificadora. O CSR é um bloco de texto que contém seus dados de contato e do domínio, e está associado a uma chave privada criada ao mesmo tempo. Você tem duas opções:
- Use o nosso Gerador de CSR para criar o CSR automaticamente.
- Siga o nosso tutorial passo a passo sobre como criar um CSR no CentOS.
Envie o CSR à Autoridade Certificadora durante a finalização da compra. Depois que a CA validá-lo e emitir o seu certificado, continue com a instalação abaixo.
Instalar um certificado SSL no CentOS / RHEL (Apache)
Atenção às versões: o CentOS Linux 8 chegou ao Fim de Vida em 31 de dezembro de 2021, e o CentOS Linux 7 chegou ao EOL em 30 de junho de 2024. Para ambientes de produção, use uma distribuição suportada da família RHEL: RHEL 8/9/10, AlmaLinux, Rocky Linux ou CentOS Stream. Todas compartilham a mesma estrutura do Apache httpd, portanto os passos abaixo se aplicam a todas elas.
Antes de começar
Depois da validação, a sua Autoridade Certificadora envia por e-mail os arquivos do certificado. Certifique-se de ter esses três arquivos separados prontos:
- yourdomain.crt, o seu certificado SSL principal.
- yourdomain.ca-bundle, os certificados intermediários (o pacote CA).
- yourdomain.key, a chave privada gerada junto com o CSR.
Importante: nunca inclua a chave privada na cadeia do certificado. A chave deve permanecer em seu próprio arquivo, legível apenas pelo root.
Passo 1: Instalar o suporte TLS (mod_ssl)
Instale o mod_ssl, que adiciona suporte TLS ao Apache e cria uma configuração TLS padrão em /etc/httpd/conf.d/ssl.conf:
sudo dnf install -y mod_ssl
Em sistemas mais antigos que ainda usam o gerenciador de pacotes yum, execute sudo yum install -y mod_ssl em vez disso.
Passo 2: Colocar os seus arquivos SSL
Copie a chave privada para /etc/pki/tls/private/ e restrinja as suas permissões para que apenas o root possa lê-la:
sudo cp yourdomain.key /etc/pki/tls/private/
sudo chown root:root /etc/pki/tls/private/yourdomain.key
sudo chmod 600 /etc/pki/tls/private/yourdomain.key
Depois, crie o arquivo com a cadeia completa concatenando o seu certificado e o pacote CA, e coloque-o em /etc/pki/tls/certs/:
cat yourdomain.crt yourdomain.ca-bundle
| sudo tee /etc/pki/tls/certs/yourdomain-fullchain.crt > /dev/null
O arquivo com a cadeia completa deve conter apenas o certificado público e a cadeia intermediária, nunca a chave privada.
Passo 3: Configurar o host virtual TLS do Apache
Você pode editar o arquivo padrão /etc/httpd/conf.d/ssl.conf criado pelo mod_ssl, ou (de forma mais organizada) criar um arquivo dedicado para o seu site, por exemplo, /etc/httpd/conf.d/yourdomain.conf. Abra-o com um editor de texto:
sudo nano /etc/httpd/conf.d/yourdomain.conf
Adicione um host virtual na porta 80 que redirecione todo o tráfego para HTTPS, seguido pelo host virtual seguro da porta 443 que contém as suas diretivas SSL:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/yourdomain.com
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/yourdomain-fullchain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
</VirtualHost>
- SSLCertificateFile, o seu arquivo com a cadeia completa (certificado + intermediários). No Apache 2.4.8 e versões mais recentes, essa diretiva única substitui a obsoleta SSLCertificateChainFile.
- SSLCertificateKeyFile, a chave privada criada junto com o CSR.
Observação sobre o host padrão: o arquivo /etc/httpd/conf.d/ssl.conf do mod_ssl vem com seu próprio <VirtualHost _default_:443> usando um certificado autoassinado. Ao adicionar um host *:443 específico do site, como acima, as solicitações que correspondem ao seu ServerName usam o seu certificado, mas solicitações HTTPS que não correspondem (por exemplo, ao acessar o servidor pelo endereço IP) ainda recorrem a esse host padrão autoassinado. Se não quiser esse comportamento, comente o bloco <VirtualHost _default_:443> em ssl.conf ou aponte-o para o seu próprio certificado.
Observação sobre o fortalecimento do TLS: o Apache no RHEL 8 e versões mais recentes segue a política de criptografia do sistema, que já desativa protocolos obsoletos. Para definir a política em todo o servidor, execute sudo update-crypto-policies --set DEFAULT (ou FUTURE para configurações mais restritivas). Se preferir fixar os protocolos por host virtual, adicione SSLProtocol -all +TLSv1.2 +TLSv1.3 dentro do bloco da porta 443.
Passo 4: Testar a configuração do Apache
Sempre verifique a sintaxe antes de recarregar, pois um único erro de digitação pode tirar o site do ar:
sudo apachectl configtest
Você deve ver a mensagem Syntax OK. (O comando sudo httpd -t faz a mesma verificação.) Corrija quaisquer erros relatados antes de continuar.
Passo 5: Reiniciar o Apache
Aplique as alterações recarregando o serviço httpd (o recarregamento ativa a nova configuração sem interromper as conexões ativas):
sudo systemctl reload httpd
Se o httpd ainda não estava em execução, inicie-o com sudo systemctl enable --now httpd. O seu site agora deve estar disponível via HTTPS. Para verificar o resultado e obter um relatório de status instantâneo, use o nosso SSL Checker.
Notas para versões antigas do CentOS (7 e anteriores)
O CentOS Linux 7, 6 e 8 já chegaram ao Fim de Vida e não recebem mais atualizações de segurança, portanto migre para uma distribuição suportada da família RHEL quando possível. Se precisar trabalhar em um servidor legado, o processo é o mesmo descrito acima, com duas diferenças:
- Gerenciador de pacotes: o CentOS 7 e 6 usam o yum em vez do dnf. Verifique se o mod_ssl já está instalado com
rpm -qa | grep mod_ssl, e caso não esteja, instale-o comsudo yum install -y mod_ssl. - Apache anterior à versão 2.4.8: apenas versões muito antigas são anteriores à 2.4.8. Nesses casos, mantenha o certificado e a cadeia em arquivos separados e adicione uma terceira diretiva, SSLCertificateChainFile, apontando para o pacote CA (não para o seu certificado):
SSLCertificateFile /etc/pki/tls/certs/yourdomain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
SSLCertificateChainFile /etc/pki/tls/certs/yourdomain.ca-bundle
No Apache 2.4.8 e versões mais recentes (que abrange todas as versões atualmente suportadas), use a diretiva única e mais simples SSLCertificateFile com a cadeia completa, mostrada no Passo 3.
Onde comprar um certificado SSL para CentOS?
O melhor lugar para comprar um certificado SSL para o seu servidor CentOS é um revendedor SSL de confiança, como a SSL Dragon. Os nossos preços estão entre os mais baixos do mercado, e oferecemos descontos regulares e ótimas ofertas em toda a nossa gama de produtos SSL, com um suporte ao cliente excelente. Todos os nossos certificados são compatíveis com o CentOS e seus sucessores da família RHEL.
A SSL Dragon cuida da segurança dos seus dados sensíveis, para que o seu site ou negócio possa prosperar online.
Perguntas Frequentes
Conecte-se ao seu site com o OpenSSL e leia o certificado que ele fornece:echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Se um certificado estiver instalado, isso exibirá o seu emissor e as datas de validade. Para inspecionar um arquivo de certificado em disco, execute openssl x509 -text -noout -in certificate.crt. Você também pode listar os hosts virtuais ativos do Apache com sudo apachectl -S, ou abrir o seu site em um navegador e verificar o cadeado.
Por convenção, os certificados ficam em /etc/pki/tls/certs/ e as chaves privadas em /etc/pki/tls/private/. Esses são os locais padrão da família RHEL; você pode usar outros locais, desde que o seu host virtual aponte para eles.
O módulo TLS instala as suas configurações padrão em /etc/httpd/conf.d/ssl.conf, e a configuração principal do Apache é /etc/httpd/conf/httpd.conf. Você pode adicionar os seus hosts virtuais ao ssl.conf, mas é mais organizado criar um arquivo específico por site, como /etc/httpd/conf.d/yourdomain.conf. Qualquer arquivo .conf em /etc/httpd/conf.d/ é carregado automaticamente. Os logs do Apache ficam em /var/log/httpd/.
No Apache 2.4.8 e versões posteriores (todas as versões atualmente suportadas da família RHEL), sim: concatene o seu certificado e o pacote CA em um único arquivo com a cadeia completa e aponte a diretiva SSLCertificateFile para ele. A diretiva separada SSLCertificateChainFile está obsoleta e só é necessária em versões do Apache anteriores à 2.4.8.
O OpenSSL vem pré-instalado no CentOS e em praticamente todas as outras principais distribuições Linux, então geralmente não é necessário instalá-lo. Se estiver ausente, adicione-o com sudo dnf install -y openssl (ou sudo yum install -y openssl no CentOS 7 e versões anteriores). Saiba mais sobre o OpenSSL e suas linhas de comando.
Conclusão
Instalar um certificado SSL no CentOS ou RHEL com o Apache consiste em instalar o mod_ssl, colocar a sua chave privada e o certificado com a cadeia completa em /etc/pki/tls/, configurar o bloco <VirtualHost *:443> em /etc/httpd/conf.d/, testar com sudo apachectl configtest e recarregar com sudo systemctl reload httpd. Precisa de um certificado primeiro? Explore os nossos certificados SSL.
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

