Dans le cadre d’un projet nécessitant de la sécurité, il peut s’avérer nécessaire de mettre en place SSL. L’achat d’un certificat pour des postes de développement s’avère coûteux et inutile, puisqu’il est possible de faire des certificats auto-signés pour Apache et IIS, en mettant un tout petit peu les mains dans le cambouis.
Dans les deux cas, la procédure est la même :
- générer une demande de signature de certificat (CSR)
- signer le certificat avec OpenSSL
- intégrer le certificat dans la config de l’hôte virtuel
Dans le cas de IIS, le serveur génère une demande de certificat qu’on fera signer par OpenSSL. Dans le cas d’Apache, OpenSSL peut générer la demande et l’auto-signer.
IIS
Etape 1 : Aller dans les propriétés du site virtuel, puis dans l’onglet Sécurité de répertoire.
Cliquez sur le bouton Certificat serveur en bas de l’onglet. Un assistant s’affiche.

Choisissez “Créer un certificat”, puis sur l’écran suivant “Préparer la demande mais ne pas l’envoyer maintenant”. Saisissez ensuite les informations administratives sur les écrans suivants et enfin l’emplacement où sera stockée votre demande (par défaut c:\certreq.txt).

Etape 2 : Installez une version Windows d’OpenSSL. Elle est disponible ici.
Etape 3 : Exécutez ensuite les commandes suivantes :
Génération de la clé :
openssl genrsa -des3 -out CA.key 1024
Génération du certificat racine
openssl req -new -key CA.key -x509 -days 1095 -out CA.crt
Signature de la demande générée par IIS (certreq.txt) dans un certificat (autosigne.cer) :
openssl x509 -req -days 365 -in c:/certreq.txt -CA CA.crt -CAkey CA.key -CAcreateserial -out c:/autosigne.cer
Etape 4 : Intégrer le certificat auto-signé sur le site web. Retourner dans l’onglet Sécurité de répertoire sur le site virtuel d’IIS, cliquer à nouveau sur Certificat serveur. Sélectionnez Traiter la demande en attente, puis sélectionnez le fichier autosigne.cer. Le certificat SSL est installé.

Apache
Le fonctionnement est assez simple pour Apache.
Etape 1 : installation d’OpenSSL avec votre outil préférentiel sous Linux (yum, apt-get, emerge…). Note pour les utilisateurs de WampServer : OpenSSL est déjà intégré dans le dossier bin d’Apache.
Etape 2 : création du CSR avec OpenSSL et génération de la clé et du certificat serveur.
openssl req -new -x509 -nodes -out server.crt -keyout server.key
Placez les fichiers server.crt et server.key dans un dossier à part (par exemple dans un dossier /etc/ssl sous Linux, ou dans le dossier conf/ssl/ d’Apache Windows).
Etape 3 : intégration dans Apache.
Assurez vous d’avoir mod_ssl activé. Le cas échéant lancez la commande :
a2enmod mod_ssl /etc/init.d/apache2 reload
ou activez-le depuis votre environnement WampServer ou EasyPHP.
Ensuite éditez le fichier de configuration Apache. Recherchez les directives SSLCertificateFile et SSLCertificateKeyFile (elles sont souvent en commentaire), et indiquez le chemin vers vos deux fichiers server.key et server.crt.
Commentaires récents