Le processus de génération de certificats SSL/TLS est une tâche courante pour de nombreux administrateurs système Linux. Heureusement, même si vous n’êtes pas administrateur, il est facile de le faire en utilisant OpenSSL, un outil open source installé par défaut sur de nombreuses distributions Linux. Nous expliquons ici ce qu’est OpenSSL, comment l’installer et, surtout, comment l’utiliser pour générer des certificats SSL et TLS sur votre système.
Qu’est-ce qu’OpenSSL ?
OpenSSL est une bibliothèque développée par le projet OpenSSL pour fournir des implémentations SSL et TLS open source pour le chiffrement du trafic réseau. Il est facilement disponible pour une variété de distributions basées sur Unix et peut être utilisé pour générer des certificats, des clés privées RSA et effectuer des tâches générales liées à la cryptographie.
Limitation du certificat SSL auto-signé
Lorsque vous utilisez OpenSSL pour générer un certificat SSL, il est considéré comme « auto-signé ». Cela signifie que le certificat SSL est signé avec sa propre clé privée et non par une autorité de certification (CA).
En tant que tel, le certificat SSL ne peut pas être « approuvé » et ne doit pas être utilisé pour un site public. S’il est utilisé, les utilisateurs verront probablement des avertissements de leurs navigateurs concernant le certificat.
Un certificat auto-signé est utile pour le développement local ou pour toute application exécutée en arrière-plan qui ne fait pas face à Internet.
Alternativement, vous pouvez utiliser LetsEncrypt ou obtenir un certificat vérifié par une autorité de confiance, telle que Comodo CA.
Installation
La plupart des distributions Linux ont déjà une version d’OpenSSL intégrée par défaut. Sinon, vous pouvez facilement l’installer.
Vous pouvez l’installer sur Ubuntu et Debian en utilisant le apt
commander:
Sur CentOS (ou son alternative), vous pouvez l’installer en utilisant le yum
commander:
Vous pouvez également le télécharger facilement à partir de son site internet sous la forme d’un fichier « .tar.gz ».
Utilisation de base
Maintenant que vous avez installé OpenSSL, nous pouvons jeter un œil à certaines des fonctions de base fournies par le programme.
Vous pouvez commencer par afficher la version et d’autres informations pertinentes sur votre installation OpenSSL :
Vous pouvez consulter le manuel fourni :
Génération d’un certificat à l’aide d’un fichier de configuration
La génération d’un certificat à l’aide d’OpenSSL est possible de plusieurs manières. L’un d’eux consiste à utiliser un fichier de configuration qui précisera les détails de l’organisation.
Pour commencer, vous pouvez créer un fichier de configuration appelé « config.conf » et le modifier à l’aide de Nano :
Voici un exemple du contenu du fichier de configuration :
[req] default_bits = 2048 prompt = no default_md = sha256 req_extensions = req_ext x509_extensions= v3_ca distinguished_name = dn [dn] C = US ST = California L = Los Angeles O = Org OU = Sales emailAddress = [email protected] CN = www.org.test.com [ v3_ca ] subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always basicConstraints = CA:true [req_ext] subjectAltName = @alt_names [alt_names] DNS.1 = test.example.com
Vous pouvez simplement copier et coller ceci dans le fichier et apporter les modifications nécessaires pour refléter les informations de votre organisation.
Ensuite, vous devez générer une clé privée RSA, qui sera ensuite utilisée pour générer un certificat racine – :
openssl genrsa -out example.key 2048
le -out
flag est utilisé dans ce cas pour spécifier le nom de la clé qui sera générée. Une taille de clé de 2048 bits est également spécifiée, qui est la valeur par défaut pour les clés RSA.
Vous devrez également générer une demande de signature de certificat (CSR) :
openssl req -new -key example.key -out example.csr -config example.conf
Dans ce cas, le -key
flag est utilisé pour spécifier la clé RSA, le -out
flag spécifie le nom du fichier CSR et le -config
flag est utilisé pour spécifier le nom du fichier de configuration.
Après cela, vous pouvez générer un certificat racine, qui est utilisé pour générer notre certificat final :
openssl req -x509 -sha256 -nodes -new -key example.key -out example.crt -config example.conf
Lors du processus de génération de ce certificat racine, le -sha256
L’indicateur est utilisé pour spécifier SHA256 comme résumé de message.
Maintenant, comme pour la dernière étape, nous pouvons enfin taper ce qui suit pour générer notre certificat :
openssl x509 -sha256 -CAcreateserial -req -days 30 -in example.csr -extfile example.conf -CA example.crt -CAkey example.key -out final.crt
le -CA
flag spécifie le certificat racine, le -CAkey
flag spécifie la clé privée et -extfile
spécifie le nom du fichier de configuration. Le fichier « final.crt » sera le certificat SSL que vous souhaitez.
Génération d’un certificat sans fichier de configuration
Alternativement, vous pouvez également générer un certificat à l’aide d’OpenSSL sans fichier de configuration.
Vous pouvez commencer par générer une clé privée RSA :
openssl genrsa -out example.key 2048
Ensuite, vous devrez générer un CSR :
openssl req -new -key example.key -out example.csr
Lors de la génération d’un CSR, vous serez invité à répondre à des questions sur votre organisation.
Enfin, nous pouvons générer le certificat lui-même :
openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt
Vérification des clés et des certificats
Les clés et les certificats sont facilement contrôlés et vérifiés à l’aide d’OpenSSL, avec le -check
drapeau:
openssl rsa -check -in example.key
Vous pouvez vérifier les demandes de signature de certificat :
openssl req -text -noout -in example.csr
ainsi que des certificats :
openssl x509 -text -noout -in example.crt
Questions fréquemment posées
1. Dois-je encore m’inquiéter pour Heartbleed ?
Heartbleed (CVE-2014-0160) est une ancienne vulnérabilité trouvée dans OpenSSL en 2014. Les serveurs TLS et les clients exécutant OpenSSL ont tous deux été affectés. Un correctif a été rapidement publié quelques jours après sa découverte, et cette vulnérabilité n’est pas préoccupante en 2022 tant que vous utilisez une version moderne et à jour d’OpenSSL.
Si vous utilisez OpenSSL sur des systèmes basés sur Debian et Ubuntu, vous pouvez toujours le mettre à jour en exécutant les commandes suivantes :
sudo apt update && sudo apt upgrade openssl
2. Combien de temps durent les certificats SSL avant d’expirer ?
Cela dépend de la valeur que vous choisissez lors de la génération du certificat. Ceci peut être spécifié en utilisant le -days
flag lors de la génération d’un certificat.