But : supprimer le passphrase d'une clé privée (certificat pour Apache)

note aux lecteurs qui n'aiment pas la "technique" : le nombre de billets techniques est assez important en ce moment, ne vous découragez pas cela va se calmer dans les prochains jours.

Si vous utilisez Apache avec le mod_ssl (permettant de joindre un serveur via le protocole HTTP sécurisé ou HTTPS) vous avez le choix de signer vous même votre certificat ou bien de demander à une autorité de certification reconnue de le signer (Verisign, Thawte, Equifax, etc).

Dans le cas où vous avez payé pour qu'une autorité signe votre clé privée, il vous faut intégrer ce type de configuration dans votre virtualhost Apache.

A titre d'exemple, voici lee contenu de mon fichier /etc/apache2/sites-available/default

[shell]<VirtualHost  _default_:443>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA;+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl/cert-public-verisign.crt
SSLCertificateKeyFile /etc/apache2/ssl/cle-privee.key
SSLCertificateChainFile /etc/apache2/ssl/cert-intermediate-verisign.crt
DocumentRoot /var/www/
CustomLog /var/log/apache2/ssl_request.log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
[/shell]

Je vous passe la procédure pour obtenir un certificat de la part d'une autorité, c'est généralement très bien expliqué chez les organismes accréditeurs.

Avec cette configuration, voici ce qu'il se passe lorsque le service Apache est (re)démarré :

[shell]# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)...httpd (no pid file) not running
Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server blogmotion.fr:443 (RSA)
Enter pass phrase: [ entrer le passphrase ici ]

OK: Pass Phrase Dialog successful.
.
[/shell]

C'est très gênant dans le sens ou Apache nécessite à chaque (re)démarrage une action humaine. Un simple redémarrage du serveur et paf, Apache ne démarre pas tout seul. C'est une mesure de sécurité renforcée mais qui est assez problématique si vous êtes le seul à administrer votre serveur.

Pour éviter ce désagrément il suffit de supprimer ce passphrase de votre clé privée, en utilisant openssl (placez vous dans le répertoire contenant vos clés/certificats) :

[shell]openssl rsa -in cle-privee.key -out cle-privee_sansPassPhrase.key[/shell]

Indiquez le chemin de cette nouvelle clé privée dans la configuration de votre VirtualHost et redémarrez Apache qui ne devrait plus rien vous demander.

ATTENTION : Par mesure de précaution, il est fortement recommandé de ne pas supprimer la première clé privée (faites en une sauvegarde en lieu sûr). Elle a été signée par votre revendeur de certificat et ce serait bête de devoir payer à nouveau en cas de pépin !

(Méthode validée sur Debian).

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter