bg-tutorials

Como Instalar um Certificado SSL no CentOS

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:

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 com sudo 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

Como saber se um certificado SSL está instalado no CentOS?

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.

Onde os certificados SSL são armazenados no CentOS?

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.

Onde está localizada a configuração SSL do Apache no CentOS?

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/.

Preciso combinar o certificado e o pacote CA no CentOS?

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.

Como instalar o OpenSSL no CentOS?

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

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.