Certificados SSL Instalar certificados do ICPEdu 1. Introdução A Infraestrutura de Chaves Públicas para Ensino e Pesquisa (AC ICPEdu) é o serviço de certificação digital oferecido pela RNP, que provê infraestrutura pronta para a emissão de certificados digitais e chaves de segurança. A modalidade adotada pelo IFPE é a “Certificado Corporativo”, onde as instituições clientes emitem gratuitamente certificados digitais qualificados pela GlobalSign, uma das maiores autoridades certificadoras do mundo. Isso fortalece a confiança dos usuários, que têm a garantia de estar fazendo negócios com uma instituição idônea. Este documento visa a orientar a configuração do certificado emitido através do Sistema de Chamados do IFPE nos servidores web Apache e NGinx. Observe que todos os passos são obrigatórios. 2. Utilizando os arquivos Neste ponto devemos ter os seguintes arquivos disponíveis: dh-4096.pem Arquivo contém os parâmetros Diffie-Hellman usado para fortalecer o canal criptografado e dificultar ataques que interceptam o tráfego criptografado. icpedu-chain.crt Arquivo contém a cadeia de autoridades de certificação que inclui a CA do ICPEdu e as da Globalsign, usado para permitir que o cliente confira a validade dos certificados. globalsign-ca.crt Arquivo contém o certificado da CA raiz da Globalsign, usado para permitir que o cliente confira a validade dos certificados. CEPO171124239914-chain.crt Arquivo inclui a cadeia de certificados que inclui o do ICPEdu, os da Globalsign, e o certificado gerado para o dispositivo final ou aplicação. É ele que será apresentado aos navegadores dos usuários. CEPO171124239914.key Arquivo inclui a chave privada do certificado gerado para o dispositivo final ou aplicação. Ele será usada para compor o fluxo criptografado, juntamente com o certificado, aos navegadores dos usuários. A seguir estão instruções de como utilizar os arquivos gerados nos servidores HTTP Apache e NGinx, instalados nos  sistemas operacionais Linux Debian (os comandos são também válidos para Ubuntu) e Centos. 2.1. O diretório dos arquivos Para seguir os passos definidos neste documento, copie os arquivos para o diretório “/etc/ssl/private/”. [usuario@linux /tmp]$ sudo mkdir -p /etc/ssl/private [usuario@linux /tmp]$ sudo cp *.crt *.key *.pem *.pfx /etc/ssl/private Os passos a seguir não funcionarão se os arquivos não estiverem no diretório “/etc/ssl/private/”. 2.2. Configuração com Apache Por padrão, os arquivos de configuração dos sites do Apache no Debian e Ubuntu ficam localizados em  “/etc/apache2/sites-available/" . Caso esteja instalado no Centos, ficam em “/etc/httpd/conf.d” No arquivo de cada host, dentro da sessão “” onde o SSL esteja habilitado inclua as definições  de modo que se pareça com o que é mostrado a seguir: Para identificar qual VirtualHost possui SSL habilitado, observe se uma linha com o conteúdo "SSLEngine On" existe Caso a versão do apache seja inferior a 2.3.6 :443> Listen 443 SSLEngine on ServerName :443 ... # Certificados SSLCertificateFile /etc/ssl/private/CEPO171124239914-chain.crt SSLCACertificateFile /etc/ssl/private/globalsign-ca.crt SSLCertificateKeyFile /etc/ssl/private/CEPO171124239914.key SSLCertificateChainFile /etc/ssl/private/icpedu-chain.crt ... Caso a versão do apache seja superior a 2.3.6 e inferior a 2.4.8 :443> Listen 443 SSLEngine on ServerName :443 ... # OCSP Stappling SSLUseStapling On SSLStaplingCache "shmcb:/tmp/stapling-cache(150000)" # Certificados SSLCertificateFile /etc/ssl/private/CEPO171124239914-chain.crt SSLCACertificateFile /etc/ssl/private/globalsign-ca.crt SSLCertificateKeyFile /etc/ssl/private/CEPO171124239914.key SSLCertificateChainFile /etc/ssl/private/icpedu-chain.crt ... Caso a versão do apache seja a 2.4.8 ou superior No arquivo de cada host, dentro da sessão “” onde o SSL esteja habilitado inclua as definições (da linha 6 até a 14) de modo que se pareça com o que é mostrado a seguir: :443> Listen 443 SSLEngine on ServerName :443 ... # OCSP Stappling SSLUseStapling On SSLStaplingCache "shmcb:/tmp/stapling-cache(150000)" # Certificados SSLOpenSSLConfCmd DHParameters /etc/ssl/private/dh-4096.pem SSLCACertificateFile /etc/ssl/private/globalsign-ca.crt SSLCertificateFile /etc/ssl/private/CEPO171124239914-chain.crt SSLCertificateKeyFile /etc/ssl/private/CEPO171124239914.key ... Após realizar a configuração mostrada é preciso aplicar as alterações. Procure por erros de configuração:[usuario@linux ~]$ sudo apache2ctl -t Se tudo correu bem, reinicie o serviço (no Debian/Ubuntu/Centos):[usuario@linux ~]$ sudo apache2ctl -k restart Para que as alterações entrem em vigor é necessário reiniciar o serviço 2.3. Configuração com NGinx Utilize o comando nginx -v para saber a versão do nginx atualmente instalada. Para este documento, é necessário que versão seja igual ou superior a 1.3.7. Por padrão, os arquivos de configuração dos sites do NGinx no Debian e Ubuntu ficam localizados em  “/etc/nginx/sites-available/" . Caso esteja instalado no Centos, ficam em “/etc/nginx/conf.d” No arquivo de cada host, na sessão “server” onde o SSL esteja habilitado  inclua as definições (da linha 4 até a 13) de modo que se pareça com o que é mostrado a seguir: Para identificar qual VirtualHost possui SSL habilitado, observe se uma linha com o conteúdo "listen 443 ssl" existe server { listen 443 ssl; ... # OCSP Stappling ssl_stapling on; ssl_stapling_verify on; resolver 208.67.220.220 208.67.222.222 valid=600s; # Certificados ssl_dhparam /etc/ssl/private/dh-4096.pem; ssl_certificate /etc/ssl/private/CEPO171124239914-chain.crt; ssl_certificate_key /etc/ssl/private/CEPO171124239914.key; ssl_trusted_certificate /etc/ssl/private/icpedu-chain.crt; ... } Após realizar a configuração mostrada é preciso aplicar as alterações. Procure por erros de configuração:[usuario@linux ~]$ sudo nginx -t Se tudo correu bem, reinicie o serviço (no Debian/Ubuntu e Centos):[usuario@linux ~]$ sudo nginx -s reload Para que as alterações entrem em vigor é necessário reiniciar o serviço 2.4 Outros sistemas Caso haja a necessidade de instalar o certificado em outros oftwares (como MS IIS, MS Exchange e CPanel), acesse a documentação de instalação disponibilizada pela Globalsign clicando neste link.