Implanter un certificat SSL P12 sur votre hébergement local apache
Vous disposer d’un serveur local apache déconnecté d’Internet et il vous faut mettre à jour son certificat SSL arrivé à expiration. Dans cet article nous allons voir comment exploiter un certificat SSL fourni au format P12 pour le mettre en place sur un serveur Web Apache.
Le certificat unique inclut le certificat personnel plus sa clé privée associée.
Les certificats au format « P12 » ou « PFX » sont utilisés avec « IIS » (Microsoft Internet Information Services) sous Windows, ils sont chiffrés.
Sur apache il est nécessaire de mettre en place 2 fichiers: un pour le certificat (.cer) en lui même et un pour la clé (.key).
Il va falloir transformer le certificat unique au format .p12 pour en extraire ces deux éléments. Ceci vous est expliqué dans les deux premières étapes qui suivent.
1. Transformer le certificat .P12 en .crt à l’aide d’OpenSSL Light
Pour ce faire il vous faudra utiliser le logicel OpenSSL Light .
Vous pourrez le trouver en téléchargement ici, mais également sur notre site en version 64bits:
Pour effectuer cette conversion il faut installer une application « Win64OpenSSL_Light-1_1_1q.exe » sur une station en Windows 10.
Lancer C:\Program Files\OpenSSL-Win64\bin\OpenSSL.exe
Vous devriez tomber sur l’invite de commande OpenSSL.
En admettant que votre certificat.p12 soit à la racine du lecteur c:, taper alors la ligne de commande suivante pour procéder à la conversion du certificat:
2. Extraire le certificat (.cer) et la clé (.key) du fichier .crt obtenu
Le fichier moncertificat.crt a été généré. Il vous faut maintenant en extraire le certificat .cer et la clé privée associée .key.
Ouvrez simplement le fichier moncertificat.crt à l’aide d’un editeur de texte et séparez le certificat de domaine et sa clé dans 2 fichiers distincts en incluant également les lignes « BEGIN » et « END » de chaque élément.
Enregistrez les respectivement en « CertificatWeb.cer » et « ClePrivee.key ».
Ces deux fichiers sont à placer sur votre serveur Web local au niveau du répertoire de votre configuration apache: Apache\conf
3. Activer le SSL sous apache
Il est nécessaire de modifier certains fichiers de paramétrage pour évoluer du protocole « HTTP » en « HTTPS » et activer SSL sur votre serveur Web apache.
Modifier votre fichier de configuration Apache\conf\httpd.conf ainsi:
#Listen 12.34.56.78:80
Listen 80
Listen 443
#
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule speling_module modules/mod_speling.so
LoadModule ssl_module modules/mod_ssl.so
Afin d’activer SSL avec le certificat et la clé extraits précédemment, modifier le fichier Apache\conf\extra\httpd-vhosts.conf comme suit:
<VirtualHost *:443>
…
SSLEngine On
SSLCertificateFile « D:/Apache/conf/CertificatWeb.cer »
SSLCertificateKeyFile « D:/Apache/conf/ClePrivee.key »
</VirtualHost>
4. Activer l’extension OpenSSL au niveau de php
Modifier le fichier php\php.ini de votre hébergement local comme suit:
extension=php_openssl.dll
…
5. Adapter les fichiers .htaccess et configuration.php de votre CMS
Votre hébergement apache est maintenant passé en SSL avec un certificat reconnu, mais il vous faudra sans doute adapter les fichiers .htaccess et configuration.php de votre CMS (Site Joomla, WordPress ou autre).
Voici les changements à réaliser pour Joomla comme exemple.
Modifier le fichier Apache\www\joomla\.htaccess comme suit:
## Mod_rewrite in use.
RewriteEngine On
RewriteCond %{HTTPS} OFF
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
…
Enfin modifier le fichier Apache\www\joomla\configuration.phpcomme suit:
public $live_site = ‘https://monsite.fr’;
…