Comment générer des certificats SSL sur Linux à l'aide d'OpenSSL

Admin

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.

Contenu

  • Qu'est-ce qu'OpenSSL ?
  • Limitation du certificat SSL auto-signé
  • Installation
  • Utilisation de base
  • Génération d'un certificat à l'aide d'un fichier de configuration
  • Génération d'un certificat sans fichier de configuration
  • Vérification des clés et des certificats
  • Questions fréquemment posées

A lire aussi :Comment configurer Leafnode en tant que serveur USENET hors ligneComment configurer Leafnode en tant que serveur USENET hors ligne

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 apte commander:

sudoapteinstaller ouvre SSL

Sur CentOS (ou son alternative), vous pouvez l'installer en utilisant le Miam commander:

sudomiam installer ouvre SSL

Vous pouvez également le télécharger facilement à partir de son site internet sous la forme d'un fichier ".tar.gz".

A lire aussi :Comment utiliser cURL pour le transfert de données en ligne de commande et plus encoreComment utiliser cURL pour le transfert de données en ligne de commande et plus encore

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 :

version openssl -une
Vérification de la version d'Openssl

Vous pouvez consulter le manuel fourni :

ouvre SSL aider
Openssl Aide Commande 1

A lire aussi :8 invites Bash utiles et intéressantes8 invites Bash utiles et intéressantes

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 :

sudonano exemple.conf

Voici un exemple du contenu du fichier de configuration :

[requis] default_bits = 2048. invite = non. default_md = sha256. req_extensions = req_ext. x509_extensions= v3_ca. nom_distingué = dn [dn] C = États-Unis. ST = Californie. L = Los Angeles. O = Org. OU = Ventes. adresse e-mail = [email protected]. CN = www.org.test.com [ v3_ca ] subjectKeyIdentifier=hachage. authorityKeyIdentifier=keyid: toujours, émetteur: toujours. basicConstraints = CA: vrai [req_ext] subjectAltName = @alt_names [alt_names] DNS.1 = test.exemple.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.

Modification du fichier de configuration nano

Ensuite, vous devez générer une clé privée RSA, qui sera ensuite utilisée pour générer un certificat racine - :

openssl générique -en dehors exemple.clé 2048

le -en dehors 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.

Openssl Générer une clé privée Rsa

A lire aussi :Comment utiliser la commande dd sous LinuxComment utiliser la commande dd sous Linux

Vous devrez également générer une demande de signature de certificat (CSR) :

demande d'openssl -Nouveau-clé exemple.clé -en dehors exemple.csr -config exemple.conf

Dans ce cas, le -clé flag est utilisé pour spécifier la clé RSA, le -en dehors 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 :

demande d'openssl -x509-sha256-nœuds-Nouveau-clé exemple.clé -en dehors exemple.crt -config exemple.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-journées30-dans exemple.csr -extfile exemple.conf -CALIFORNIE exemple.crt -CAkey exemple.clé -en dehors final.crt

le -CALIFORNIE 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.

Openssl Générer un certificat auto-signé

A lire aussi :Comment configurer un serveur SFTP sous LinuxComment configurer un serveur SFTP sous Linux

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 générique -en dehors exemple.clé 2048

Ensuite, vous devrez générer un CSR :

demande d'openssl -Nouveau-clé exemple.clé -en dehors exemple.csr

Lors de la génération d'un CSR, vous serez invité à répondre à des questions sur votre organisation.

Demande de signature de certificat Openssl

Enfin, nous pouvons générer le certificat lui-même :

openssl x509 -req-journées30-dans exemple.csr -signkey exemple.clé -en dehors exemple.crt
Openssl Génération de certificat sans fichier de configuration

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 -Chèque drapeau:

openssl rsa -Chèque-dans exemple.clé
Openssl Vérifier la clé privée Rsa

Vous pouvez vérifier les demandes de signature de certificat :

demande d'openssl -texte-noout-dans exemple.csr

ainsi que des certificats :

openssl x509 -texte-noout-dans exemple.crt
Certificat de vérification OpenSSL

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 :

mise à jour sudo apt && mise à niveau sudo apt 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 -journées flag lors de la génération d'un certificat.

Crédit image: Sls écrit sur un bloc de cube en bois par 123RF

Abonnez-vous à notre newsletter!

Nos derniers tutoriels livrés directement dans votre boîte de réception

Tasksel: installer facilement le logiciel de groupe sous Linux
Tasksel: installer facilement le logiciel de groupe sous Linux

Si vous avez commencé à utiliser une distribution basée sur RPM avant des avancées telles que "yu...

Migrer votre installation Linux entre les machines
Migrer votre installation Linux entre les machines

Il est inévitable que vous ayez une configuration Linux impressionnante… jusqu'à ce que le dernie...

Haïku: BeOS pour le 21e siècle
Haïku: BeOS pour le 21e siècle

Bienvenue en 1995! Pas. Bien que le système d'exploitation open source Haiku soit basé sur l'anci...