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:

Temos mais um post caso queira saber também sobre a 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):

DePara
SSLCertificateFile /etc/pki/tls/certs/localhost.crtSSLCertificateFile /etc/pki/tls/certs/certificado.crt
SSLCertificateChainFile /etc/pki/tls/certs/intermediario.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.keySSLCertificateKeyFile /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.

NVLAN - Consultoria