Les certificats SSL/TLS sont essentiels pour sécuriser votre application web ou votre serveur. Bien que plusieurs autorités de certification fiables fournissent des certificats SSL/TLS payants, il est également possible de générer un certificat auto-signé à l’aide d’OpenSSL. Même si les certificats auto-signés ne bénéficient pas de l’aval d’une autorité de confiance, ils peuvent tout de même crypter votre trafic web. Comment utiliser OpenSSL pour générer un certificat auto-signé pour votre site web ou votre serveur ?
Comment installer OpenSSL
OpenSSL est un logiciel libre. Mais si vous n’avez pas d’expérience en programmation et que vous êtes préoccupé par les processus de construction, son installation est un peu technique. Pour éviter cela, vous pouvez télécharger la dernière version du code d’OpenSSL, entièrement compilée et prête à être installée, depuis le site de slproweb.
Sélectionnez ici l’extension MSI de la dernière version d’OpenSSL adaptée à votre système.
A titre d’exemple, considérons OpenSSL à D:\NOpenSSL-Win64. Vous pouvez modifier cela. Si l’installation est terminée, ouvrez PowerShell en tant qu’administrateur et naviguez jusqu’au sous-dossier nommé bin dans le dossier où vous avez installé OpenSSL. Pour ce faire, utilisez la commande suivante :
cd 'D:\OpenSSL-Win64\bin'
Vous avez maintenant accès à openssl.exe et vous pouvez l’exécuter comme vous le souhaitez.
Générer votre clé privée avec OpenSSL
Vous aurez besoin d’une clé privée pour créer un certificat auto-signé. Dans le même dossier bin, vous pouvez créer cette clé privée en entrant la commande suivante dans PowerShell une fois que vous avez ouvert en tant qu’administrateur.
openssl.exe genrsa -des3 -out myPrivateKey.key 2048
Cette commande génère une clé privée RSA de 2048 bits, chiffrée en 3DES via OpenSSL. OpenSSL vous demandera d’entrer un mot de passe. Vous devez utiliser un mot de passe fort et facile à mémoriser. Après avoir saisi deux fois le même mot de passe, vous aurez généré avec succès votre clé privée RSA.
Vous pouvez trouver votre clé RSA privée sous le nom myPrivateKey.key.
Comment créer un fichier CSR avec OpenSSL
La clé privée que vous créez ne suffira pas à elle seule. De plus, vous avez besoin d’un fichier CSR pour créer un certificat auto-signé. Pour créer ce fichier CSR, vous devez entrer une nouvelle commande dans PowerShell :
openssl.exe req -new -key myPrivateKey.key -out myCertRequest.csr
OpenSSL vous demandera également le mot de passe que vous avez saisi pour générer la clé privée. Il vous demandera également vos informations légales et personnelles. Veillez à saisir ces informations correctement.
En outre, il est possible d’effectuer toutes les opérations décrites ci-dessus à l’aide d’une seule ligne de commande. Si vous utilisez la commande ci-dessous, vous pouvez générer à la fois votre clé privée RSA et le fichier CSR :
openssl.exe req -new -newkey rsa:2048 -nodes -keyout myPrivateKey2.key -out myCertRequest2.csr
Vous pouvez maintenant voir le fichier nommé myCertRequest.csr dans le répertoire correspondant. Ce fichier CSR que vous créez contient des informations sur :
- L’institution qui demande le certificat.
- Nom commun (c’est-à-dire nom de domaine).
- Clé publique (à des fins de cryptage).
Les fichiers CSR que vous créez doivent être examinés et approuvés par certaines autorités. Pour cela, vous devez envoyer le fichier CSR directement à l’autorité de certification ou à d’autres institutions intermédiaires.
Ces autorités et maisons de courtage examinent si les informations que vous fournissez sont correctes, en fonction de la nature du certificat que vous souhaitez obtenir. Il se peut que vous deviez également envoyer certains documents hors ligne (fax, courrier, etc.) pour prouver que les informations sont correctes.
Préparation d’un certificat par une autorité de certification
Lorsque vous envoyez le fichier CSR que vous avez créé à une autorité de certification valide, celle-ci signe le fichier et envoie le certificat à l’institution ou à la personne qui l’a demandé. Ce faisant, l’autorité de certification (également appelée CA) crée également un fichier PEM à partir des fichiers CSR et RSA. Le fichier PEM est le dernier fichier requis pour un certificat auto-signé. Ces étapes garantissent que les certificats SSL restent organisés, fiables et sécurisés.
Vous pouvez également créer vous-même un fichier PEM avec OpenSSL. Cependant, cela peut présenter un risque potentiel pour la sécurité de votre certificat car l’authenticité ou la validité de ce dernier n’est pas claire. De plus, le fait que votre certificat soit invérifiable peut l’empêcher de fonctionner dans certaines applications et certains environnements. Ainsi, pour cet exemple de certificat auto-signé, nous pouvons utiliser un faux fichier PEM, mais, bien entendu, cela n’est pas possible dans le monde réel.
Pour l’instant, imaginons un fichier PEM nommé myPemKey.pem provient d’une autorité de certification officielle. Vous pouvez utiliser la commande suivante pour créer un fichier PEM pour vous-même :
openssl x509 -req -sha256 -days 365 -in myCertRequest.csr -signkey myPrivateKey.key -out myPemKey.pem
Si vous disposiez d’un tel fichier, la commande que vous devriez utiliser pour votre certificat auto-signé serait la suivante :
openssl.exe x509 -req -days 365 -in myCertRequest.csr -signkey myPemKey.pem -out mySelfSignedCert.cer
Cette commande signifie que le fichier CSR est signé avec une clé privée nommée myPemKey.pemvalide pour 365 jours. En conséquence, vous créez un fichier de certificat nommé mySelfSignedCert.cer.
Informations sur le certificat auto-signé
Vous pouvez utiliser la commande suivante pour vérifier les informations relatives au certificat auto-signé que vous avez créé :
openssl.exe x509 -noout -text -in mySelfSignedCert.cer
Cette commande vous montrera toutes les informations contenues dans le certificat. Il est possible de voir de nombreuses informations telles que l’entreprise ou les informations personnelles, ainsi que les algorithmes utilisés dans le certificat.
Que se passe-t-il si les certificats autosignés ne sont pas signés par l’autorité de certification ?
Il est essentiel de vérifier les certificats auto-signés que vous créez et de confirmer qu’ils sont sûrs. Un fournisseur de certificats tiers (c’est-à-dire une autorité de certification) se charge généralement de cette tâche. Si vous ne disposez pas d’un certificat signé et approuvé par une autorité de certification tierce et que vous utilisez ce certificat non approuvé, vous rencontrerez des problèmes de sécurité.
Les pirates peuvent utiliser votre certificat auto-signé pour créer une fausse copie d’un site web, par exemple. Cela permet à un pirate de voler les informations des utilisateurs. Ils peuvent également s’emparer des noms d’utilisateur, des mots de passe ou d’autres informations sensibles de vos utilisateurs.
Pour garantir la sécurité des utilisateurs, les sites web et autres services doivent généralement utiliser des certificats certifiés par une autorité de certification. Cela permet de garantir que les données de l’utilisateur sont cryptées et qu’il se connecte au bon serveur.
Création de certificats auto-signés sous Windows
Comme vous pouvez le constater, la création d’un certificat auto-signé sous Windows avec OpenSSL est assez simple. Mais n’oubliez pas que vous devrez également obtenir l’approbation des autorités de certification.
Néanmoins, la création d’un tel certificat montre que vous prenez la sécurité des utilisateurs au sérieux, ce qui signifie qu’ils vous feront davantage confiance, ainsi qu’à votre site et à votre marque en général.
