Aqui falaremos sobre os procedimentos que utilizamos habilitar o uso de SSL para o apache prover HTTPs em servidores CentOS, por se tratar de algo simples abordaremos de uma maneira também bem simples. Lembrando que será necessário ter os arquivos .key, o .crt do servidor e os demais .crt intermediários (caso existam). Para ajudar um pouco mais, vamos considerar que você não tem esses arquivos mas tem o arquivo .pfx (e vamos lhe ensinar a converter, caso já tenha os arquivos desconsidere a primeira parte).
Antes de ler esse nosso POST, sugerimos que avalie algumas outras soluções, como:
- O uso de um Proxy Reverso com Ngnix para os servidores WEB por permitir funcionalidades (centralizar a administração, balancear os servidores, criar alta disponibilidade, etc.);
- Caso ainda não possua o certificado, sugerimos que avalie o uso de de um site gratuito para criar certificado SSL válido para seu servidor http.
Temos mais um post caso queira saber também como Instalação e configuração de certificado digital (existente) no IIS.
Vamos considerar que você já tem um servidor CentOS com apache instalado (caso tenha dúvidas de como fazer isso aqui ou no link disponibilizado nas referências).
Primeira parte: Em posse do arquivo .pfx, copie-o para a pasta /tmp e execute os seguintes comandos abaixo para obter os arquivos .crt e .key (altere o conteúdo em cinza conforme sua necessidade):
cd /tmp
openssl pkcs12 -in SEU_CERTIFICADO.pfx -nocerts -out certificado-encrypted.key
openssl pkcs12 -in SEU_CERTIFICADO.pfx -clcerts -nokeys -out certificado.crt
openssl rsa -in certificado-encrypted.key -out certificado.key
Solicite o certificado intermediário com a Operadora (DICA: é possível baixar o intermediário como BASE 64 por um navegador e renomeá-lo para intermediario.crt). Copie esse arquivo também para a pasta /tmp do servidor e vamos executar a segunda parte:
Segunda parte: Em posse de todas as chaves e certificados (.crt e .key) necessários.Acesse o servidor CentOS e instale o mod_ssl para o apache:
yum install mod_ssl -y
Habilite o virtual host (inserindo a linha NameVirtualHost *:80) no arquivo httpd.conf, para isso execute o seguinte comando:
echo NameVirtualHost *:80 >> /etc/httpd/conf/httpd.conf
Acesse a pasta /tmp e copie os certificados para os locais corretos:
cd /tmp
mv *.crt /etc/pki/tls/certs
mv *.key /etc/pki/tls/private
vim /etc/httpd/conf.d/ssl.conf
Dentro do arquivo ssl.conf, pressione a tecla INSERT para entrar em modo de edição e altere o seguinte conteúdo (vamos considerar que há certificado intermediário, altere o conteúdo em cinza conforme sua necessidade):
De | Para |
SSLCertificateFile /etc/pki/tls/certs/localhost.crt | SSLCertificateFile /etc/pki/tls/certs/certificado.crt SSLCertificateChainFile /etc/pki/tls/certs/intermediario.crt |
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key | SSLCertificateKeyFile /etc/pki/tls/private/certificado.key |
Feito isso digite a tecla ESC e em seguida digite :wq! e pressione ENTER para sair e salvar. Agora é necessário editar o arquivo vhosts.conf.
vim /etc/httpd/conf.d/vhosts.conf
Dentro, pressione a tecla INSERT para entrar em modo de edição e insira o seguinte conteúdo (vamos considerar que há certificado intermediário, altere o conteúdo em cinza conforme sua necessidade):
<VirtualHost *:80> ServerName seusite.seudominio.com Redirect permanent / https://seusite.seudominio.com/ </VirtualHost> <VirtualHost _default_:443> ServerName seusite.seudominio.com ServerAlias seusite ServerAdmin suporte@seudominio.com DocumentRoot /var/www/html/seusite.seudominio.com </VirtualHost> |
Reinicie o apache e faça o teste. Uma boa ferramenta para teste completo do site (incluindo teste dos certificados intermediários) está em nosso post sobre um Site para testar o certificado SSL de seu servidor.
Fontes/Referências
NVLAN – Instalação e configuração de certificado digital (existente) no IIS
NVLAN – Instalando o Proxy Reverso com Ngnix no CentOS7
NVLAN – Site gratuito para criar certificado SSL válido para seu servidor HTTP
NVLAN – Site para testar o certificado SSL de seu servidor
NVLAN – Instalação padrão do CentOS7
NVLAN – Instalando o Apache no CentOS
Mais Informações
Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.
Entre em contato conosco pelo e-mail equipe@nvlan.com.br.