em Linux

Apache com suporte a SSL em servidor Ubuntu

Este tutorial têm como finalidade ensinar a habilitar o suporte a SSL no web server Apache sob um servidor Ubuntu.

Para Ubuntu 7.10 ou superiores

Primeiramente precisamos instalar o servidor Apache 2. Para isto abra o terminal com um super usuário e execute o comando abaixo:

sudo apt-get install apache2

Instalando o suporte a SSL

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

Instalando o módulo SSL
O mod_ssl adiciona uma importante funcionalidade no servidor Apache. Ele habilita a comunicação criptografada. Ele possibilita que quando seu navegador fizer uma requisição com o protocolo ( prefixo ) https:// o servidor saiba criptografar esta requisição

Para habilitar o módulo execute:

sudo a2enmod ssl
sudo /etc/init.d/apache2 force-reload

 Criando o Virtualhosts
Primeiramente faça uma cópia do virtualhost padrão. Para isto execute os seguintes comandos:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Feito o backup do arquivo vamos editar para que fique com as configurações como no exemplo abaixo. No meu caso vou usar o editor Vi

vi /etc/apache2/sites-available/ssl

adicione no arquivo as tags como as abaixo:

NameVirtualHost *:443
<virtualhost *:443>
ServerAdmin [email protected]

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem

DocumentRoot /var/www/
<directory />
Options FollowSymLinks
AllowOverride None
</directory>

<directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2’s default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/
</directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<directory “/usr/lib/cgi-bin”>
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ “/usr/share/doc/”
<directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</directory>

</virtualhost>

Habilitando o suporte a SSL no VirtualHost

sudo a2ensite ssl
sudo /etc/init.d/apache2 reload

Testando

Para testar é simples, abra seu navegador e entre na url como https://127.0.0.1

Se tudo ocorrer bem seu servidor Apache já estará apto para conexões com SSL. Caso você tenha algum problema verifique o arquivo /var/log/apache2/access.log