Vous êtes sur la page 1sur 3

Configurando o apache usando SSL

fonte: http://www.phpmania.org/modules.php?name=Sections&op=viewarticle&artid=8
(1130 total de palavras neste texto)
(1873 vizualização(ões))

Em muitos casos precisamos de uma conexão segura à páginas na internet, por isso é interessante
configurar o apache para que use o protocolo de acesso seguro (ssl).

Abaixo segue um procedimento passo a passo de como gerar um certificado para que o apache de sua
máquina passe a usar ssl.
Para efetuar tal configuração será necessário ter instaldo em seu equipamento os pacotes abaixo:
apache
openssl
openssl-progs

Para verificar se os pacotes estão instalados use os comandos abaixo em um terminal e logado como root:
[root@localhost]# rpm -qa | grep apache

[root@localhost]# rpm -qa | grep ssl

Se um dos comandos acima apenas "pular" de linha sem retornar nada significa que os pacotes não estão
instalados.
Para instalar os pacotes necessários pode-se usar o apt-get.
[root@localhost]# apt-get install apache openssl openss-progs

Iniciando o processo de configuração


Primeiramente edite o arquivo de configuração do ssl no apache, que é o /etc/apache/conf/ssl.conf , para
isso use o comando abaixo:
[root@localhost]# mcedit /etc/apache/conf/ssl.conf

Procure pela entrada abaixo:


# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on

Verifique no seu arquivo se está igual a entrada acima. SSLEngine on significa que estamos habilitando o
uso de ssl no apache.
Agora que já foi habilitado o uso de ssl é preciso fazer a configuração do servidor.
Localize mais acima no arquivo a seguinte entrada:
<VirtualHost _default_:443>

Altere _default_ para o ip da sua máquina. Deverá ficar parecido com o exemplo:
<VirtualHost 10.0.2.73:443>

É preciso alterar também as informações abaixo:


# General setup for the virtual host
DocumentRoot "/srv/www/default/html"
ServerName new.host.name:443
ServerAdmin you@your.address
ErrorLog /var/log/apache/error_log
TransferLog /var/log/apache/access_log

Onde:
DocumentRoot -> É onde estão armazenadas as páginas que o apache irá servir
ServerName -> É o nome do seu servidor (hostname)
ServerAdmin -> É o e-mail do administrador do servidor
ErrorLog -> É onde serão armazenados os logs de erro
TransferLog -> É onde serão armazenados os logs de acesso

Alterando deve ficar parecido com o exemplo abaixo:


DocumentRoot "/srv/www/default/html"
ServerName bravo.conectiva:443
ServerAdmin root@bravo
ErrorLog /var/log/apache/error_log
TransferLog /var/log/apache/access_log

Pressione F2 para salvar o arquivo e F10 para sair.


Inicie o apache para que ele gera a chave secreta do seu servidor.
[root@localhost]# service apache start

Deverá resultar em algo como:


Creating self-signed digital certificate, please wait...
Generating a 1024 bit RSA private key
....++++++
..............++++++
writing new private key to '/etc/apache/conf/ssl.key/server.key'
-----
Certificates generated successfully, proceeding to normal startup...
PLEASE REMEMBER THAT THIS IS A DUMMY CERTIFICATE AND SHOULD ONLY BE
USED FOR TESTING PURPOSES!

Se não apareceu essa mensagem é porque provavelmente já existia uma chave e um certificado na sua
máquina, porém com as alterações feitas será necessário gera-los novamente.
Antes faça um backup dos arquivos antigos.
[root@localhost]# cd /etc/apache/conf/ssl.key/

[root@localhost]# mv server.key server.key.old

[root@localhost]# cd /etc/apache/conf/ssl.crt/

[root@localhost]# mv server.crt server.crt.old

Agora reinicie o apache com os comandos abaixo e verifique se finalmente obteve a resposta esperada.
[root@localhost]# service apache stop
[root@localhost]# service apache start

Agora que a chave foi criada é preciso gerar o certificado novamente. Gere-o usando o comando abaixo:
[root@localhost]# openssl req -new -x509 -nodes -keyout /etc/apache/conf/ssl.key/server.key -out /etc/apache

Ao executar esse comando será pedido para que informe alguns dados. Veja o exemplo abaixo:
Generating a 1024 bit RSA private key
.......................++++++
........................++++++
writing new private key to '/etc/apache/conf/ssl.key/server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:Parana
Locality Name (eg, city) []:Curitiba
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Conectiva SA
Organizational Unit Name (eg, section) []:sup-cl
Common Name (eg, YOUR name) []:Andre
Email Address []:root@bravo

O certificado foi gerado, para testa-lo use o comando abaixo:


[root@localhost]# openssl s_client -connect servidor.meudominio:443

Troque servidor.meudominio pelo nome do servidor em que foi efetuado todo o procedimento acima.
[root@localhost]# openssl s_client -connect bravo.conectiva:443

Se a conexão for efetuada com sucesso será apresentada algumas mensagens na tela, dentre elas a que
confirma o sucesso:
---
SSL handshake has read 1260 bytes and written 340 bytes
---

Para testar através do navegador basta acessar o endereço do site criado com ssl utilizando a opção de
https:
https://nome_do_servidor
Será mostrada uma tela pedindo a confirmação sobre a utilização do certificado