Todos os produtos
Search
Central de documentação

Certificate Management Service:Instalar um certificado SSL em um servidor Apache (Linux)

Última atualização: Sep 18, 2026

Ative o HTTPS em um servidor Apache Linux instalando um certificado SSL de domínio único, multidomínio ou curinga. Este guia aborda a preparação dos arquivos de certificado, a configuração do mod_ssl e do VirtualHost, além da verificação pós-implantação.

Pré-requisitos

Antes de começar, certifique-se de que você possui:

  • Um certificado SSL válido emitido por uma autoridade certificadora (CA) confiável. Se o seu certificado estiver prestes a expirar ou já tiver expirado, renove-o antes de prosseguir.

  • Um certificado que cubra todos os domínios que você deseja proteger. Para adicionar ou alterar domínios vinculados, compre um novo certificado ou atualize os domínios vinculados.

  • Uma conta root ou uma conta com privilégios sudo no servidor.

  • Um registro DNS para o domínio que resolva para o endereço IP público do seu servidor.

  • Resolução DNS: O nome de domínio resolve para o endereço IP público do servidor.

Regras de cobertura de domínio:

Tipo de certificado

Cobertura

Correspondência exata

example.com protege apenas example.com; www.example.com protege apenas www.example.com

Curinga

*.example.com cobre subdomínios de primeiro nível (por exemplo, www.example.com, a.example.com), mas não o domínio raiz example.com nem subdomínios de vários níveis como a.b.example.com

Nota

Para cobrir subdomínios de vários níveis, o campo Bound Domains deve incluir o domínio exato (por exemplo, a.b.example.com) ou um curinga correspondente (por exemplo, *.b.example.com).

Etapa 1: Preparar os arquivos de certificado

  1. Acesse a página SSL Certificate Management. Na coluna Actions do seu certificado, clique em Download Certificate. Na aba Download, selecione Apache como Server Type e baixe o pacote.

  2. Extraia o pacote baixado. O pacote contém dois ou três arquivos, dependendo de como a Solicitação de Assinatura de Certificado (CSR) foi gerada:

    Nota

    Se você gerou a CSR com OpenSSL ou Keytool, a chave privada foi salva apenas na sua máquina local e não está incluída no pacote baixado. Caso a chave privada seja perdida, o certificado não poderá ser utilizado. Adquira um novo certificado e gere uma nova CSR e chave privada.

    Cenário

    Arquivos no pacote

    Ação

    Chave gerenciada pelo sistema (CSR gerada pela Alibaba Cloud)

    <bound_domain_name>_public.crt, <bound_domain_name>_chain.crt, <bound_domain_name>.key

    Armazene todos os três arquivos em um local seguro.

    Chave autogerenciada (CSR gerada com OpenSSL ou Keytool)

    Apenas <bound_domain_name>_public.crt, <bound_domain_name>_chain.crt

    Implante estes arquivos juntamente com o arquivo de chave privada que você salvou localmente ao gerar a CSR.

  3. Faça upload do arquivo de certificado, do arquivo de cadeia de certificados e do arquivo de chave privada para um diretório seguro no seu servidor, como /etc/ssl/cert.

    Nota

    Use uma ferramenta de login remoto, como PuTTY, Xshell ou WinSCP, para fazer upload dos arquivos. Se o seu servidor for uma instância do Elastic Compute Service (ECS) da Alibaba Cloud, consulte Upload ou download de arquivos.

Etapa 2: Abrir a porta 443

Certifique-se de que o firewall e o grupo de segurança do seu servidor permitam tráfego de entrada na porta 443.

Verificar se a porta 443 está aberta

Execute o comando a seguir para testar a conectividade da porta 443. Substitua <your_server_public_ip> pelo endereço IP público do seu servidor.

RHEL/CentOS

command -v nc > /dev/null 2>&1 || sudo yum install -y nc
# Replace <your_server_public_ip> with the public IP address of your server.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

Saída esperada se a porta 443 estiver aberta: Ncat: Connected to <your_server_public_ip>:443

Debian/Ubuntu

command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat
# Replace <your_server_public_ip> with the public IP address of your server.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l -p 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

Saída esperada se a porta 443 estiver aberta: Connection to <your_server_public_ip> port [tcp/https] succeeded! ou [<your_server_public_ip>] 443 (https) open

Caso a porta 443 não esteja aberta, conclua as duas subetapas a seguir.

Abrir a porta 443 no grupo de segurança

Importante

Se o seu servidor estiver em uma plataforma cloud, confirme se o grupo de segurança permite tráfego TCP de entrada na porta 443. Caso contrário, o service HTTPS ficará inacessível. Os passos abaixo usam o Alibaba Cloud ECS como exemplo; para outras plataformas, consulte a documentação respectiva.

Acesse a página Elastic Compute Service (ECS) instances e clique no nome da sua instância. Na seção Security Group Details, adicione uma regra de grupo de segurança com as seguintes configurações:

Campo

Valor

Action

Allow

Protocol

Custom TCP

Destination (Current Instance)

HTTPS (443)

Source

0.0.0.0/0 (anywhere)

Abrir a porta 443 no firewall do sistema

Execute o comando a seguir para identificar seu firewall ativo:

if command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet firewalld; then
    echo "firewalld"
elif command -v ufw >/dev/null 2>&1 && sudo ufw status | grep -qw active; then
    echo "ufw"
elif command -v nft >/dev/null 2>&1 && sudo nft list ruleset 2>/dev/null | grep -q 'table'; then
    echo "nftables"
elif command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet iptables; then
    echo "iptables"
elif command -v iptables >/dev/null 2>&1 && sudo iptables -L 2>/dev/null | grep -qE 'REJECT|DROP|ACCEPT'; then
    echo "iptables"
else
    echo "none"
fi

Se a saída for none, nenhuma ação adicional é necessária. Caso contrário, execute o comando correspondente ao seu tipo de firewall:

firewalld

sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reload

ufw

sudo ufw allow 443/tcp

nftables

sudo nft add table inet filter 2>/dev/null
sudo nft add chain inet filter input '{ type filter hook input priority 0; }' 2>/dev/null
sudo nft add rule inet filter input tcp dport 443 counter accept 2>/dev/null

iptables

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Para persistir as regras do iptables entre reinicializações:

RHEL/CentOS

sudo yum install -y iptables-services
sudo service iptables save

Debian/Ubuntu

sudo apt-get install -y iptables-persistent
sudo iptables-save | sudo tee /etc/iptables/rules.v4 >/dev/null

Etapa 3: Instalar o certificado no Apache

Os passos de configuração variam conforme a versão do Apache. Verifique sua versão primeiro e siga as instruções correspondentes.

Verificar a versão do Apache e ativar o módulo SSL

Etapa 3a: Verificar a versão do Apache

RHEL/CentOS

httpd -v

Debian/Ubuntu

apache2 -v

Etapa 3b: Verificar se o módulo SSL está ativado

RHEL/CentOS

httpd -M | grep 'ssl_module'

Debian/Ubuntu

apachectl -M | grep 'ssl_module'

Se o módulo estiver carregado, a saída incluirá ssl_module (shared). Caso contrário, instale-o:

RHEL/CentOS

sudo yum install -y mod_ssl
# For RHEL/CentOS 8.0 and later:
sudo dnf install -y mod_ssl

Debian/Ubuntu

sudo a2enmod ssl

Configurar o VirtualHost

Apache 2.4.8 e posterior (recomendado)

Combinar os arquivos de certificado

Concatene o arquivo de certificado e o arquivo de cadeia em um único arquivo fullchain:

# Append the certificate chain to the server certificate to create a complete chain file.
cat domain_name_public.crt domain_name_chain.crt > domain_name_fullchain.pem

Isso gera dois arquivos: domain_name_fullchain.pem e domain_name.key.

Editar a configuração SSL do VirtualHost

Nota

O arquivo de configuração geralmente está localizado em /etc/httpd/conf.d/ssl.conf (RHEL/CentOS) ou /etc/apache2/sites-available/your-site-ssl.conf (Debian/Ubuntu).

vim /etc/httpd/conf.d/ssl.conf

Atualize os parâmetros SSL no bloco VirtualHost:

<VirtualHost *:443>

    # Replace example.com with the domain name you want to secure.
    ServerName example.com

    # Certificate file. Use the path to the combined fullchain file.
    SSLCertificateFile /etc/ssl/cert/domain_name_fullchain.pem

    # Private key file. Replace with the path to your private key file.
    SSLCertificateKeyFile /etc/ssl/cert/domain_name.key

    # Other configurations
    # ...

</VirtualHost>

Apache 2.4.7 e anterior

Preparar os arquivos de certificado

Confirme se o diretório de certificados contém todos os três arquivos: domain_name_public.crt, domain_name_chain.crt e domain_name.key.

Editar a configuração SSL do VirtualHost

Nota

O arquivo de configuração geralmente está localizado em /etc/httpd/conf.d/ssl.conf (RHEL/CentOS) ou /etc/apache2/sites-available/your-site-ssl.conf (Debian/Ubuntu).

vim /etc/httpd/conf.d/ssl.conf

Atualize os parâmetros SSL no bloco VirtualHost:

<VirtualHost *:443>

    # Replace example.com with the domain name bound to your certificate.
    ServerName example.com

    # Certificate file. Replace with the path to your certificate file.
    SSLCertificateFile /etc/ssl/cert/domain_name_public.crt

    # Certificate chain file (specified separately). Replace with the actual path.
    SSLCertificateChainFile /etc/ssl/cert/domain_name_chain.crt

    # Private key file. Replace with the path to your private key file.
    SSLCertificateKeyFile /etc/ssl/cert/domain_name.key

    # Other configurations
    # ...

</VirtualHost>

Validar e recarregar o Apache

Verifique a sintaxe da configuração:

RHEL/CentOS

sudo httpd -t

Debian/Ubuntu

sudo apache2ctl -t

Se a saída for Syntax OK, recarregue ou reinicie o Apache para aplicar o certificado:

RHEL/CentOS

# Reload (graceful, recommended):
sudo systemctl reload httpd

# Restart (force restart):
sudo systemctl restart httpd

Debian/Ubuntu

# Reload (graceful, recommended):
sudo systemctl reload apache2

# Restart (force restart):
sudo systemctl restart apache2

Etapa 4: Verificar a instalação

Abra https://yourdomain no navegador (substitua yourdomain pelo seu domínio real). Um ícone de cadeado na barra de endereços confirma que o certificado está ativo.

image

Se nenhum ícone de cadeado aparecer ou se ocorrer um erro de acesso, limpe o cache do navegador ou tente novamente no modo anônimo.

A partir do Chrome 117, o ícone image foi substituído por image. Clique neste ícone para visualizar os detalhes do certificado.

Nota

Se ainda tiver problemas, consulte a seção FAQ abaixo.

Entrando em produção

Adote estas práticas antes de implantar em produção:

  • Use uma conta de service sem privilégios de root: Crie um usuário de sistema dedicado e com baixos privilégios para o Apache. Nunca execute o servidor sob uma conta root ou de administrador.

    Nota

    Considere terminar o SSL na camada de balanceador de carga — implante o certificado em um Server Load Balancer (SLB), que lida com HTTPS e encaminha o tráfego HTTP descriptografado para os servidores de backend.

  • Mantenha credenciais fora do código: Nunca codifique senhas ou chaves privadas diretamente nos arquivos de configuração. Injete credenciais por meio de variáveis de ambiente, HashiCorp Vault ou um service de gerenciamento de chaves na cloud.

  • Redirecione HTTP para HTTPS: Configure o Apache para redirecionar todo o tráfego HTTP para HTTPS, evitando ataques man-in-the-middle.

  • Desative protocolos TLS legados: Na configuração do Apache, desative SSLv3, TLSv1.0 e TLSv1.1. Ative apenas TLSv1.2 e TLSv1.3.

  • Monitore e renove antes da expiração: Após a implantação, ative o monitoramento de domínio. A Alibaba Cloud verifica a validade do certificado e envia lembretes de renovação antes da expiração. Consulte Adquirir e ativar o monitoramento de nome de domínio público.

FAQ

O HTTPS está inacessível após a instalação — o que devo verificar?

Siga as verificações abaixo em ordem:

  1. Porta 443 bloqueada: Confirme se a porta 443 está aberta tanto no grupo de segurança quanto no firewall do sistema. Consulte Etapa 2: Abrir a porta 443.

  2. Incompatibilidade de domínio: O domínio acessado não consta nos Bound Domains do certificado. Veja as regras de cobertura de domínio em Pré-requisitos.

  3. Apache não recarregado: O service Apache não foi recarregado ou reiniciado após a alteração de configuração. Consulte Validar e recarregar o Apache.

  4. Caminho de certificado incorreto ou arquivos desatualizados: Verifique se os caminhos no arquivo de configuração do Apache apontam para os arquivos de certificado corretos e atualizados.

  5. Certificado ausente em services upstream: Se o seu domínio passar por uma Content Delivery Network (CDN), Server Load Balancer (SLB) ou Web Application Firewall (WAF), instale o certificado também nesses services. Consulte Locais de implantação de certificado quando o tráfego passa por múltiplos services da Alibaba Cloud.

  6. Implantação em múltiplos servidores incompleta: Se o DNS do domínio resolver para vários servidores, instale o certificado em cada um deles.

O navegador mostra "certificate name mismatch" ou NET::ERR_CERT_COMMON_NAME_INVALID — o que isso significa?

O domínio que você está acessando não corresponde a nenhum domínio listado nos Bound Domains do certificado. Verifique as regras de cobertura de domínio em Pré-requisitos e adquira ou atualize seu certificado, se necessário.

Como atualizar ou substituir um certificado SSL no Apache?

  1. Faça backup dos arquivos antigos: Salve cópias dos arquivos .crt e .key existentes no servidor.

  2. Baixe os novos arquivos: Obtenha o novo certificado e a chave privada no console SSL Certificate Management.

  3. Substitua os arquivos: Faça upload dos novos arquivos nos mesmos caminhos especificados na configuração do Apache, sobrescrevendo os antigos.

  4. Recarregue o Apache: Execute sudo systemctl reload httpd (RHEL/CentOS) ou sudo systemctl reload apache2 (Debian/Ubuntu) para aplicar o novo certificado sem tempo de inatividade.