Il peut être utile de générer des certificats autosignés pour votre serveur (notamment pour l’accès à certains services qui ne nécessitent pas forcément un certificat signé par une véritable autorité de certification comme Verisign ou Thawte) : je pense à PHPMyAdmin, les consoles d’administration des sites etc.
Voici en quelques étapes comment procéder :
Installer openssl et activez le mod_ssl d’apache
Si ce n’est pas encore le cas, installez openssl et activez le mod_ssl d’apache (s’il s’agit d’utiliser ce certificat pour https), sinon, sautez cette étape (valable sous debian) :
apt-get install openssl
a2enmod ssl #ou l’activer directement en décommentant la ligne dans la configuration d’apache
/etc/init.d/apache restart
Générer la clé privée RSA
OpenSSL est l’utilitaire qui permet de générer des clés privée RSA et le CSR (Certificate Signing Request).
openssl genrsa -des3 -out ligams.com.key 2048
# Enter pass phrase for server.key:XXXXXXXXXX
# Verifying – Enter pass phrase for server.key:XXXXXXXXXX
Générer le CSR
Un fois la clé privée générée, le CSR peut être généré. Tapez cette commande et répondez aux questions de la même manière que ci-dessous :
openssl req -new -key ligams.com.key -out ligams.com.csr
# Enter pass phrase for server.key:
# Country Name (2 letter code) [AU]:FR
# State or Province Name (full name) [Some-State]:Languedoc-Roussillon
# Locality Name (eg, city) []:Montpellier
# Organization Name (eg, company) [Internet Widgits Pty Ltd]:Ligams
# Organizational Unit Name (eg, section) []:Dev
# Common Name (e.g. server FQDN or YOUR name) []:ligams.com <– votre domaine
# Email Address []:contact@ligams.com
# A challenge password []:YYYYYYYYYY
# An optional company name []:YYYYYYYYYY
Supprimer le mot de passe de la clé
Utilisez les commandes suivante pour enlever le mot de passe :
cp ligams.com.key ligams.com.tmp
openssl rsa -in ligams.com.tmp -out ligams.com.key
# Enter pass phrase for ligams.com.tmp:XXXXXXXXXX
Générer un certificat autosigné
Ce certificat n’étant pas signé par une autorité de certification (CA), cela générera une erreur sur les navigateurs internet, mais ce n’est pas vraiment grave pour ce qui nous concerne ; générons un certificat valable 10 ans :
openssl x509 -req -days 3650 -in ligams.com.csr -signkey ligams.com.key -out ligams.com.crt
Modifiez le VirtualHost Apache de votre site
*:443 signifie que ce VirtualHost répondra sur le port 443 (cette configuration n’est valable que si vous avec ajouté un NameVirtualHost *:443 dans votre conf), il faut activer SSL pour ce VirtualHost et indiquer les chemin vers le certificat :
<VirtualHost *:443>
DocumentRoot “/var/www/ligams.com”
ServerName ligams.com
SSLEngine on
SSLCertificateFile /etc/ssl/ligams.com.crt
SSLCertificateKeyFile /etc/ssl/ligams.com.key
</VirtualHost>
Voici ce que cela devrait donner dans un navigateur (ici firefox) :
Remarque : si vous n’obtenez pas de réponse du serveur, vérifiez votre configuration d’apache (notamment que les directives Listen 443).