Exportation du certificat SSL depuis un serveur web Mac OSX

{0 Comments}

Vous souhaitez migrer votre site web HTTPS actuellement hébergé sur un serveur mac osx vers un autre serveur?

il vous faudra, alors, prendre en considération une option particulière activée dans la configuration d’Apache des différentes versions des serveurs OSX à partir de la vénérable 10.6 jusqu’à la dernière 10.11 10.12

En effet, lors de la mise en place du certificat SSL, la clef privée est silencieusement chiffrée avec une phrase générée aléatoirement et gérée automatiquement par le serveur.

Cette option est complètement transparente pour l’utilisateur puisque les différentes opérations de configurations sont effectuées par l’assistant de certification (respectivement via l’admin serveur en OSX 10.6 et via l’app Serveur dans 10.11) qui s’occupe de poser les certificats et la clef dans les dossiers spécifiques anisi qu’effectuer les modifications nécessaires dans le fichier de configuration d’Apache

Dès lors si  on se limite à rapatrier les certificats et la clef dans les dossiers appropriés sur le nouveau serveur web comme on le fait habituellement, au redémarrage Apache nous signalera par ce message d’avertissement

Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

qu’ il attend de nous la phrase nécessaire à déchiffrer notre clef privée pour pouvoir démarrer le service.

En effet si l’on regarde de prés le fichier de configuration httpd.conf sur notre serveur Mac, nous remarquerons les entrées suivantes concernant la prise en charge du module SSL:

<IfModule mod_ssl.c>
SetEnvIf User-Agent ".MSIE." nokeepalive ssl-unclean-shutdown
SSLPassPhraseDialog exec:/etc/httpd/getsslpassphrase
SSLSessionCache dbm:/var/log/httpd/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:/var/log/httpd/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLLogLevel info
AddType application/x-x509-ca-cert crt
AddType application/x-pkcs7-crl crl
</IfModule>

Quelle est donc cette phrase magique? Comment la récupérer?

la réponse se trouve dans l’entrée

SSLPassPhraseDialog exec:/etc/httpd/getsslpassphrase

OSX utilise, donc, un petit programme à chaque démarrage d’Apache afin de répondre convenablement avec la phrase de chiffrement.

Il nous reste, donc, à faire appel manuellement à ce même exécutable afin de récupérer le sésame

Ouvrez votre terminal préféré sur votre serveur Mac OSX et lancez la commande:

sudo /Library/Server/Web/Config/apache2/getsslpassphrase localhost:443 RSA

ou s’il s’agit d’un serveur 10.6

sudo /etc/apache2/getsslpassphrase localhost:443 RSA

cela vous retournera un code alphanumérique.

Nous pouvons donc déchiffrer la clef en format pem obtenue par le « trousseau d’accès » (Keychain Access utility) ou récupérée à partir des dossiers spécifiés dans le fichier de configuration d’Apache.

Il suffit de lancer la commande openssl pappropiée par le biais de votre application terminal préférée ( iterm2 the best)

openssl rsa -outform der -in /chemin/vers/votre/export/la.key.pem -out /chemin/vers/votre/export/la.key

et répondre à l’invite de commande avec la phrase alphanumérique précédemment obtenue.

…voilà, nous pouvons dès à présent utiliser nos clef et certificat sur notre nouveau serveur web

Leave a Comment

Your email address will not be published.

*