Apache2 et SSL

Pour mémoire, créer des clefs SSL pour un serveur web:

# cd /etc/apache2

Si besoin, créer des répertoires pour rececoir les clefs.

# mkdir ssl.key
# chmod 0700 ssl.key
# mkdir ssl.crt

Créer les clefs:

# cd ssl.key
# NAME=www.mon-domain.fr
# openssl req -new -newkey rsa:2048 -out "${NAME}".csr

Une pass-phrase est demandée, on va la virer trés vite.
Il faut aussi répondre a quelques questions, pour exemple:

Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:Marseille
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mon entreprise
Organizational Unit Name (eg, section) []:Mail
Common Name (e.g. server FQDN or YOUR name) []:www.mon-domain.fr
Email Address []:XXXpostmasterXXX@mon-domain.fr

Pour l'instant, on a 2 fichiers:

privkey.pem
www.mon-domain.fr.csr

Extraire la clef privée en ce débarassant de la pass-phrase:

# openssl rsa -in privkey.pem -out "${NAME}".key

Créer le certificat auto-signé qui va bien (valable 10 ans):

# openssl x509 -in "${NAME}".csr -out "${NAME}".crt -req -signkey "${NAME}".key -days 3650

On peut rendre ce certificat visible (public)

# mv www.mon-domain.fr.crt ../ssl.crt/

Dans la conf d'Apache, on peut maintenant faire:

SSLEngine on 
SSLCertificateFile /etc/apache2/ssl.crt/www.mon-domain.fr.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/www.mon-domain.fr.key

Et puis, peut être:

# a2enmod ssl

Et aussi:

# apache2ctl configtest

… si succès, on termine par:

# apache2ctl graceful