5. Exemplo da instalação da certificação no servidor web Apache
De posse dos 3 arquivos anteriores (gs_root.pem, intermediate.pem e exemplo.ifsertao-pe.edu.br.crt), e da Chave Privada gerada na sessão 2 deste guia (exemplo.ifsertao-pe.edu.br.key), a cadeia de certificados pode ser instalada em definitivo no servidor que fará uso da certificação. No exemplo deste guia, o servidor a ser protegido é um Servidor Web identificado pelo domínio exemplo.ifsertao-pe.edu.br.
A instalação compreende basicamente a cópia dos arquivos para uma pasta específica do servidor, fazendo-se necessário ainda realizar algumas configurações para que os arquivos da certificação sejam localizados pelo serviço web e para que ele possa fazer uso do protocolo SSL através do HTTPS.
Por padrão o diretório /etc/ssl/ é utilizado para armazenar os certificados do servidor. Contudo, este exemplo usa a pasta <pasta_do_apache>/ssl/icpedu/, devendo-se copiar os arquivos anteriores para ela. O CentOS utiliza a pasta /etc/httpd/ como diretório padrão do serviço Apache, enquanto o Debian utiliza /etc/apache2/. Para tanto, os comandos abaixo podem ser utilizados:
|
# mkdir <pasta_do_apache>/ssl/icpedu/ # cd <pasta_onde_os_arquivos_foram_baixados> # cp *.pem *.crt *key <pasta_do_apache>/ssl/icpedu/ |
Por padrão, os arquivos de configuração dos sites do Apache no CentOS ficam em /etc/httpd/conf.d. No Debian, ficam localizados em /etc/apache2/sites-available/. Este exemplo considera que a pasta padrão no CentOS foi alterada para seguir o padrão do Debian, como segue:
- Criação dos diretórios:
|
# mkdir -p /etc/httpd/sites-available # mkdir -p /etc/httpd/sites-enabled |
- Edição do arquivo /etc/httpd/conf/httpd.conf para que o Apache enxergue o diretório criado /etc/httpd/sites-enabled, inserindo a seguinte linha no final do arquivo:
|
IncludeOptional sites-enabled/*.conf |
Este exemplo habilita o SSL para o site “Site Exemplo” presente no diretório /var/www/html/siteexemplo/, com seu arquivo de configuração definido no arquivo <pasta_do_apache>/sites-available/siteexemplo.conf e habilitado pelo link correspondente em <pasta_do_apache>/sites-enabled/siteexemplo.conf. Para tanto, os seguintes comandos podem ser utilizados:
|
# mkdir /var/www/html/siteexemplo # touch /var/www/html/siteexemplo/index.html # touch <pasta_do_apache>/sites-available/siteexemplo.conf # ln -s <pasta_do_apache>/sites-available/siteexemplo.conf <pasta_do_apache>/sites-enabled/siteexemplo.conf |
Para fazer uso dos certificados, o arquivo <pasta_do_apache>/sites-available/siteexemplo.conf deve ser editado como o exemplo abaixo:
|
<VirtualHost <server_name>:443> DocumentRoot “/var/www/html/siteexemplo” SSLEngine on ServerName <server_name>:443
SSLCACertificateFile <pasta_do_apache>/ssl/icpedu/gs_root.pem SSLCertificateChainFile <pasta_do_apache>/ssl/icpedu/intermediate.pem SSLCertificateFile <pasta_do_apache>/ssl/icpedu/exemplo.ifsertao-pe.edu.br.crt SSLCertificateKeyFile <pasta_do_apache>/ssl/icpedu/exemplo.ifsertao-pe.edu.br.key
<Directory “/var/www/html/siteexemplo/”> DirectoryIndex index.html Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> |
Antes de testar o acesso, deve-se verificar se a porta HTTPS (443) está liberada no Firewall, caso o servidor faça uso de um. Pode ser necessário ainda habilitar o módulo SSL no servidor:
-
No CentOS:
|
# yum install mod_ssl |
-
No Debian:
|
# a2enmod ssl |
Para finalizar a instalação deve-se reiniciar os serviços com um dos comandos:
|
# systemctl restart httpd # apache2ctl restart # shutdown -r now |
O acesso HTTPS pode ser testado em um navegador web com a url https://exemplo.ifsertao-pe.edu.br/siteexemplo. A página web “Site Exemplo” deve ser exibida, significando que a conexão está sendo encriptada e que o certificado foi reconhecido pelo navegador devido ao cadeado ao lado da url. A figura abaixo exemplifica o acesso ao site web do domínio *rnp.br protegido por seu certificado digital.