Il faut activer le module SSL d'apache a2enmod ssl

Avec apache 2, le serveur écoute automatiquement le port 443 si le module SSL est activé. Vérifier le fichier ports.conf et ajouter cette ligne si nécessaire.

Listen 443

Et ensuite redémarrer le serveur apache pour appliquer les modifications

/etc/init.d/apache2 force-reload

Il faut ensuite générer les certificats ainsi que la clé. Pour cela, on va utiliser OpenSSL pour les générer.

Les options :

  • -x509 -nodes : certificat de type auto-signé
  • -days 365 : indique la durée de validité (en jours) de votre certificat
  • -newkey rsa:1024 : demande une clé RSA de 1024 bits
  • -out /etc/apache2/server.crt : est le chemin de votre certificat
  • -keyout /etc/apache2/server.key : est le chemin de la clé privée

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key

Et enfin, on ajoute dans le vhost.

<VirtualHost *:443>
DocumentRoot /home/user/www
ServerName www.mondomaine.com
<Directory "/home/user/www">
allow from all
Options +Indexes
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/server.crt
SSLCertificateKeyFile /etc/apache2/server.key
</VirtualHost>

Le vhost change peu par rapport à un vhost normal. Le port change, ici en 443 et le mode SSL est activé.

Voila, un restart du serveur apache et c'est good. https://www.mondomaine.com/ . Comme c'est un certificat auto-signé, le navigateur va croire que c'est un faux, mais c'est sûr. (et puis, c'est vous qui l'avez fait ^_^ )

Signature