Sep 24 2016
Réutiliser un Certificat Exchange / IIS PFX sur Apache
En générant un certificat Microsoft Exchange (ou IIS), profitez-en pour y ajouter des noms de domaine supplémentaires et le réutiliser sur un serveur web Apache. Cela vous fera économiser du temps et de l’argent, à moins que votre CA fournisse des certificats pour des plate-formes multiples.
PFX est un format d’échange populaire pour les logiciels Microsoft comme Exchange ou IIS. Il s’agit d’un fichier d’archive PKCS#12 qui contient un certificat et la clé privée correspondante. Il peut aussi comporter d’autres choses comme le certificat CA.
Tout d’abord, copiez le fichier pfx généré avec Exchange sur le serveur web Apache où vous devriez avoir tous les outils nécessaires pour extraire et importer le certificat PFX sur Apache.
Extraire la Clé et le Certificat du Fichier PFX
Extraire la clé privée du fichier PFX avec openssl. Entrez le mot de passe s’il vous est demandé.
openssl pkcs12 -in cert.pfx -nocerts -out enc.key -nodes
Puis extraire le certificat
openssl pkcs12 -in cert.pfx -nokeys -out cert.crt
En enfin, déchiffrement de la clé privée RSA
openssl rsa -in enc.key -out dec.key
Importer la Clé et le Certificat dans Apache
Déplacez le certificat et la clé privée dans les répertoires appropriés (Sur Linux Redhat), et donner les droits au propriétaire en lecture seule
mv cert.crt /etc/pki/tls/certs/
mv dec.key /etc/pki/tls/private/
chmod 600 /etc/pki/tls/private/dec.key
Sans le chmod, le redémarrage d’Apache retourne une erreur.
Si selinux est activé, lancez
restorecon -RvF /etc/pki
pour donner les bons droits aux nouveaux fichiers, ou vous obtiendrez le message d’erreur suivant:
[error] (13)Permission denied: Init: Can’t open server certificate file /etc/pki/tls/certs/cert.crt
Déclarez le nouveau certificat dans le fichier de configuration de l’hôte virtuel Apache:
SSLCertificateFile /etc/pki/tls/certs/cert.crt
SSLCertificateKeyFile /etc/pki/tls/private/dec.key
Et appliquez les modifications:
/etc/init.d/httpd reload
Vous avez maintenant le même certificat sur Exchange (ou IIS au format PFX) et le serveur web Apache. Le certificat peut être utilisé sur d’autres serveurs web comme Nginx par exemple.
Vérifiez avec votre autorité de certification en premier lieu. Certains fournissent des formats de certificats multiples pour des logiciels variés, ce qui peut vous épargner ces manipulations.