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.pemDocumentRoot /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 warnCustomLog /var/log/apache2/access.log combined
ServerSignature OnAlias /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