Activer https pour un serveur apache2
Cet article est très largement inspiré de cette documentation, très bien faite. Le seul but ici est de me faire un mémo personnel.
Stopper Apache
/etc/init.d/apache2 stop
Activer le module SSL
a2enmod ssl
Créer un hôte virtuel pour le site en https
Il faut pour ce faire créer un fichier dans le répertoire /etc/apache2/sites-available nommé avec par exemple votre nom de domaine : mondomaine.https
NameVirtualHost *:443
<VirtualHost *:443>
...
...
# add ssl protocol
SSLEngine On
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /etc/ssl/certs/mondomaine.crt
SSLCertificateKeyFile /etc/ssl/private/mondomaine.key
</VirtualHost>
Ajouter l’hôte virtuel nouvellement créé
a2ensite mondomaine.https
Vérifier que le port 443 est bien autorisé
- Vérifier qu’il y a bien Listen 443 dans le fichier /etc/apache2/ports.conf
- Vérifier que ce port est bien autorisé par votre parefeu
Générer la clé et le certificat
Attention je fais ici la supposition que l’on génère soit-même le certificat sans passer par un organisme officiel. Un message de mise en garde sur l’authenticité du certificat sera affiché aux visiteurs de votre site.
Génération de la clé privée
openssl genrsa -out mondomaine.key 1024
Il n’y a ici pas de mot de passe associé (sinon il faut rajouter l’option -des3 à cette ligne de commande). Si on met un mot de passe, il sera demandé à chaque démarrage d’Apache.
Etablissement d’une demande de certificat
openssl req -new -key mondomaine.key -out mondomaine.csr
Création du certificat
openssl x509 -req -days 30000 -in mondomaine.csr -signkey mondomaine.key -out mondomaine.crt
Installation du certificat
mv mondomaine.crt /etc/ssl/certs
mv mondomaine.key /etc/ssl/private
Démarrage d’Apache
/etc/init.d/apache2 start