Instale um certificado SSL no Apache Mod_SSL

Configurando Apache com SSL

As instruções a seguir assumem que você deseja executar um servidor seguro (na porta 443) e um servidor regular (na porta 80) Primeiro, você precisa configurar o servidor para escutar em ambas as portas. Qualquer edição /etc/apache2/ports.conf (no Debian; isso está incluído no apache2.conf) ou editar /etc/apache2/apache2.conf diretamente para incluir as linhas:

Ouça 80 Ouça 443

Em seguida, edite /etc/apache2/sites-enabled/yoursite para usar as configurações de SSL. Separar as configurações de servidor regulares e seguras usando VirtualHosts é a opção mais fácil em termos de manutenção. Qualquer configuração fora das seções VirtualHosts (como definir o ServerAdmin) se aplicará a ambos (e qualquer outro) VirtualHosts.

Nota: A partir do Apache 2.4.8, a prática de manter o certificado do servidor e a cadeia de certificados intermediários em arquivos separados foi preterida. Os métodos atuais e herdados estão detalhados nas guias clicáveis ​​abaixo.
Apache 2.4.8 ou superiorApache 2.4.7 ou inferior

As versões do Apache 2.4.8 e superiores esperam que o certificado do seu servidor seja concatenado com quaisquer certificados intermediários em um arquivo. Para baixar um arquivo encadeado de SSL.com, escolha o Nginx link de download na sua conta do portal:

nginx

Como alternativa, você pode concatenar o certificado existente e os arquivos intermediários com um comando como o seguinte:

$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt

Adicione a seguinte seção ao seu arquivo de configuração:

# ========================================================= # SSL /TLS configurações # ==================================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine em SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key

Algumas notas sobre esta configuração:

  • SSLEngine deve ser habilitado para que o servidor use SSL.
  • DocumentRoot define o diretório raiz para este host virtual. Isso significa que você pode separar completamente o conteúdo seguro do conteúdo normal.
  • SSLCertificateFile deve ser definido como o local em que você colocou o arquivo com o certificado do servidor e a cadeia intermediária.
  • SSLCertificateKeyFile deve ser definido como o local onde você coloca seu arquivo de chave privada.

Adicione a seguinte seção ao seu arquivo de configuração:

# ========================================================= # SSL /TLS configurações # ==================================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine em SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ssl / private client.crt

Algumas notas sobre esta configuração:

  • SSLEngine deve ser habilitado para que o servidor use SSL.
  • DocumentRoot define o diretório raiz para este host virtual. Isso significa que você pode separar completamente o conteúdo seguro do conteúdo normal.
  • SSLCertificateFile, SSLCertificateChainFile, e SSLCertificateKeyFile deve ser definido como os locais onde você coloca seu certificado, arquivos de chave intermediários e privados, respectivamente.

Para executar o servidor regular na porta 80, adicione a seguinte seção ao arquivo de configuração:

NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Configuração do diretório específico do host, opções, etc. # A maioria dessas opções provavelmente serão definidas fora das seções # VirtualHosts.

Depois de salvar o arquivo de configuração editado, reinicie o servidor da web. Se você usou uma frase secreta ao gerar seu certificado, será necessário inseri-la quando questionado.

ensaio

Crie uma página index.html básica onde quer que o diretório raiz do seu servidor web esteja localizado, se você ainda não tiver conteúdo lá.

Em seguida, aponte seu navegador da web para https://www.yoursite.com. Você deve ver uma conexão SSL aberta e a página entregue. Se você estiver usando um certificado autoassinado, seu navegador exibirá um alerta alertando que a identidade do servidor não pode ser verificada. Você pode escolher ver e aceitar o certificado. Se estiver usando um certificado externo, tudo deve acontecer sem intervenção.

Certifique-se também de que você não pode acessar o conteúdo protegido usando http: //. Se você tentar, deverá obter uma mensagem de erro.

guia de solução de problemas

Se não estiver funcionando como esperado, primeiro verifique se o servidor está realmente em execução, usando ps -a | grep apache. Se isso não retornar nada, tente reiniciá-lo e verifique se há mensagens de erro no terminal.

Verifique também se as permissões nos arquivos de chave e certificado estão definidas corretamente (veja acima), bem como as permissões no arquivo HTML de teste e no diretório pai.

Em seguida, verifique os registros. Você deve verificar os logs do servidor principal e também os logs de SSL que você configurou no arquivo de configuração acima. Se você não obtiver nada de útil, tente alterar o valor LogLevel no arquivo de configuração do Apache2 para “debug”, reinicie o Apache2 e teste novamente. Isso deve fornecer mais dados do arquivo de log.

Se você também estiver executando um servidor da web normal na porta 80, tente obter uma página de teste via http: // em vez de https: // para ajudar a identificar se o problema é com o servidor da web ou com a conexão SSL. Observe que na configuração acima, o diretório raiz do servidor web é diferente para http: // e https: //, portanto, você não poderá (ou não deveria!) Acessar o mesmo conteúdo. Se sua página de teste no diretório http: // root funcionar bem, e sua página de teste no diretório https: // root não funcionar, então isso pode ajudá-lo a localizar o problema.

Se o problema for a conexão SSL, uma ferramenta útil é s_client, que é uma ferramenta de diagnóstico para solução de problemas TLS/ Conexões SSL. O uso básico é: /usr/bin/openssl s_client -connect localhost:443. Existem inúmeras outras opções também, para as quais você pode verificar a documentação. Se você receber mensagens de erro, isso deve ajudá-lo a localizar o problema.

Obrigado por escolher SSL.com! Se você tiver alguma dúvida, entre em contato conosco por e-mail em Support@SSL.com, ligar 1-877-SSL-SECUREou clique no link de bate-papo no canto inferior direito desta página.

Inscreva-se no boletim informativo de SSL.com

Não perca novos artigos e atualizações de SSL.com

Mantenha-se informado e seguro

SSL.com é líder global em segurança cibernética, PKI e certificados digitais. Inscreva-se para receber as últimas notícias do setor, dicas e anúncios de produtos da SSL.com.

Adoraríamos receber seu feedback

Responda à nossa pesquisa e deixe-nos saber sua opinião sobre sua compra recente.