Création d’un certificat SSL auto-signé

Bannière Certificat SSL

Si vous utilisez les technos Citrix (et bien d’autres), vous avez sûrement déjà eu besoin de créer un certificat SSL auto signé afin d’utiliser par exemple la gateway de la web interface… ou plus simplement utiliser les protocole https sur votre serveur web IIS ou Apache.

Évidemment, vous pouvez vous payer un certificat SSL, certifié valide par un organisme tiers. Mais le but premier de cet article est de détailler la démarche afin de pouvoir créer un certificat SSL, gratuitement, à des fins de test.

Il existe bien des manières de procéder mais dans mon cas je vais utiliser un outil appelé OpenSSL qui perment d’implémenter du SSL/TLS ainsi qu’une bibliothèque de cryptographie. Nous pourrons ainsi générer le certificat dont je vous parle.

Prérequis : Se procurer la librairie OpenSSL

Pour ce faire, on se rend sur le site suivant :

Et on récupère la dernière version en date.

WinOpenSSL

Au passage, vous aurez également besoin de Microsoft Visual C++ 2008 Runtime.

Rendez-vous ici pour les récupérer :

Une fois tout ce petit monde installé, nous allons utiliser le “Prompt Command” de Windows Server afin de saisir les 3 lignes de commandes qui vont nous permettre de générer notre certificat SSL.

Etape 1 : Création de la clé privée

La création de la clé privée passe par l’utilisation de la commande “genrsa” permettant de générer votre clé privée avec l’agorithme RSA.

Selon les besoins, vous pouvez utiliser plus ou moins d’options avec cette ligne de commande.

Positionnez vous dans le répertoire C:\OpenSSL-Win32\bin et exécutez la commande openssl.exe.

Puis effectuez la commande suivante :

Genrsa Command

Détail des options :

  • genrsa : génération d’une clé avec l’algorithme RSA
  • -rand : réservoir de données aléatoires
  • -out : fichier de sortie
  • 2048 : taille de la clé, en bits
  • -des3 : indique la création d’une clé avec mot de passe (pass phrasee)

Dans toute architecture reposant sur un système de clé privé/public c’est la clé dite privée, celle que vous venez de générer doit rester secrète et vous ne devez pas communiquer à un tiers.

NB : Si vous avez l’erreur suivante :

  • WARNING: can’t open config file: /usr/local/ssl/openssl.cnf

Ouvrez le Command Prompt en mode Administrateur et exécutez d’abord la commande suivante.

  • set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
Error OpenSSL

Etape 2 : Création d’une requête de certification

Pour créer la requête de certification, nous procédons comme suit.

Req Command

OpenSSL va vous poser une succession de questions auxquelles il vous faudra répondre (avec plus ou moins d’exactitude) selon vos besoins.

Détail des options :

  • req : gestion des requêtes de certification
  • -new : nouvelle demande
  • -key : clé privée à utiliser
  • -out : fichier de sortie
Au passage, nous pouvons en profiter pour vérifier que les différents fichiers que vous avez créé jusqu’ici sont bien là.
Check 1
Etape 3 : Auto-signature du certificat

Pour signer le certificat, nous allons utiliser la commande x509.
X509 Command
Évidemment dans chacun des cas où on vous demande le password, celui-ci doit correspondre à celui que vous avez saisi à l’étape 1.
Détail des options :
  • x509 : gestion des certificats
  • -req : pour passer un certificat
  • -days : validité du certficat, en jours
  • -in : fichier contenant la demande de certification
  • -signkey : auto-signature
  • -out : nom du certificat de sortie
Notre certificat est correctement généré :
Check 2
Conclusion

On dispose maintenant d’un certificat auto-signé qui peut être utilisé avec divers services, comme Apache par exemple pour sécuriser un site Web et permettre l’utilisation du protocole https. Toutefois, lors de l’utilisation sur un site Web, le navigateur affichera un message d’avertissement sur la connexion en HTTPS. Ceci est du au fait que, comme son nom l’indique, le certificat utilisé est auto-signé, c’est à dire non certifié par une autorité de confiance telle que Verisign par exemple.

A venir un article pour l’utilisation sur une Citrix Secure GateWay (XenApp 6.5).

Lire aussi :