« Openssl » : différence entre les versions

De Wiki doc

(Ajout de la section "Simuler un serveur WEB" + Francisation du nom des fichiers généré dans la création d'un couple de clés + mise en italique du mot "PKCS#12")
 
Ligne 2 : Ligne 2 :
=Création d'un couple de clés=
=Création d'un couple de clés=
'''Publique/privé'''
'''Publique/privé'''
  openssl req -x509 -nodes -days 5000 -newkey rsa:4096 -out /etc/ssl/certs/server.crt -keyout /etc/ssl/private/server.key
  openssl req -x509 -nodes -days 5000 -newkey rsa:4096 -out /etc/ssl/certs/serveur.crt -keyout /etc/ssl/private/serveur.key


{{astuce|il est possible de pré-remplir les informations qui seront demandées pour la création du certificat afin de désactiver l’interaction de la commande en ajoutant le paramètre suivant à votre commande : <syntaxhighlight lang="bash" inline>-subj "/C=FR/ST=Paris/L=Paris/O=Entreprise 1/OU=Pôle recherche/CN=toto.exemple.fr, emailAddress = admin@exemple.fr"</syntaxhighlight>.}}
{{astuce|il est possible de pré-remplir les informations qui seront demandées pour la création du certificat afin de désactiver l’interaction de la commande en ajoutant le paramètre suivant à votre commande : <syntaxhighlight lang="bash" inline>-subj "/C=FR/ST=Paris/L=Paris/O=Entreprise 1/OU=Pôle recherche/CN=toto.exemple.fr, emailAddress = admin@exemple.fr"</syntaxhighlight>.}}


'''Restriction d'accès à la clé privée'''
'''Restriction d'accès à la clé privée'''
  chmod 400 /etc/ssl/private/server.key
  chmod 400 /etc/ssl/private/serveur.key


'''Chaînage du certificat'''
'''Chaînage du certificat'''
  cat /etc/ssl/certs/server.crt /etc/ssl/private/server.key > /root/chaine.pem
  cat /etc/ssl/certs/serveur.crt /etc/ssl/private/serveur.key > /root/chaine.pem


=Vérifier un couple de clés=
=Vérifier un couple de clés=
Ligne 32 : Ligne 32 :


==Conversion du format PKCS#12 vers le format PEM==
==Conversion du format PKCS#12 vers le format PEM==
Le format PKCS#12, généralement utilisé par [[:Catégorie:Windows|Microsoft Windows]] et les versions mobiles d'[[Openvpn|OpenVPN]], comporte généralement les extensions ''.pfx'' ou ''.p12''.
Le format ''PKCS#12'', généralement utilisé par [[:Catégorie:Windows|Microsoft Windows]] et les versions mobiles d'[[Openvpn|OpenVPN]], comporte généralement les extensions ''.pfx'' ou ''.p12''.
  openssl pkcs12 -nodes -in doc.ycharbi.fr.p12 -out doc.ycharbi.fr.crt
  openssl pkcs12 -nodes -in doc.ycharbi.fr.p12 -out doc.ycharbi.fr.crt


Ligne 48 : Ligne 48 :
Le format ''DER'' comporte généralement les extensions ''.crt'' ''.cer'' ou ''.der''.
Le format ''DER'' comporte généralement les extensions ''.crt'' ''.cer'' ou ''.der''.
  openssl x509 -inform der -in doc.ycharbi.fr.cer -out doc.ycharbi.fr.pem
  openssl x509 -inform der -in doc.ycharbi.fr.cer -out doc.ycharbi.fr.pem
=Simuler un serveur WEB=
Il est possible de simuler un serveur ''WEB HTTPS'' en une commande. Ceci peut être utile à des fins de test (la page affichera les capacités d{{'}}''OpenSSL'').
openssl s_server -cert /tmp/tls/serveur.crt -key /tmp/tls/serveur.key -accept 44330 -www
''OpenSSL écoute alors les requêtes HTTP via TLS sur le port 44330 (toutes adresses source).''
Il est possible d'afficher cette page avec un navigateur ou directement depuis le client intégré à ''OpenSSL'' :
openssl s_client -connect localhost:44330
==Sources de la section==
* https://superhero.ninja/2015/07/22/create-a-simple-https-server-with-openssl-s_server/


=Source=
=Source=
* https://www.kinamo.fr/fr/support/faq/commandes-openssl-utiles
* https://www.kinamo.fr/fr/support/faq/commandes-openssl-utiles

Dernière version du 18 août 2022 à 13:36

Création d'un couple de clés

Publique/privé

openssl req -x509 -nodes -days 5000 -newkey rsa:4096 -out /etc/ssl/certs/serveur.crt -keyout /etc/ssl/private/serveur.key

ASTUCE

il est possible de pré-remplir les informations qui seront demandées pour la création du certificat afin de désactiver l’interaction de la commande en ajoutant le paramètre suivant à votre commande : -subj "/C=FR/ST=Paris/L=Paris/O=Entreprise 1/OU=Pôle recherche/CN=toto.exemple.fr, emailAddress = admin@exemple.fr".

Restriction d'accès à la clé privée

chmod 400 /etc/ssl/private/serveur.key

Chaînage du certificat

cat /etc/ssl/certs/serveur.crt /etc/ssl/private/serveur.key > /root/chaine.pem

Vérifier un couple de clés

Contrôler et afficher une clé privée et publique

openssl rsa -noout -text -check -in doc.ycharbi.fr.key

Afficher le contenu décodé d'un certificat en format PEM

openssl x509 -noout -text -in doc.ycharbi.fr.pem

Afficher le contenu d'un certificat en format PKCS#7

openssl pkcs7 -print_certs -in doc.ycharbi.fr.p7b

Afficher le contenu d'un certificat et d'une clé en format PKCS#12

openssl pkcs12 -info -in doc.ycharbi.fr.p12

Contrôler une connexion TLS et afficher tous les certificats intermédiaires

openssl s_client -connect doc.ycharbi.fr:443

Convertir des certificats

Non testé.

Conversion du format PKCS#12 vers le format PEM

Le format PKCS#12, généralement utilisé par Microsoft Windows et les versions mobiles d'OpenVPN, comporte généralement les extensions .pfx ou .p12.

openssl pkcs12 -nodes -in doc.ycharbi.fr.p12 -out doc.ycharbi.fr.crt

Conversion du format PEM vers le format PKCS#12

openssl pkcs12 -export -in doc.ycharbi.fr.crt -inkey doc.ycharbi.fr.key -out doc.ycharbi.fr.p12

Conversion du format PKCS#7 vers le format PEM

Le format PKCS#7 comporte généralement les extensions .p7b ou .p7c.

openssl pkcs7 -print_certs -in doc.ycharbi.fr.p7b -out doc.ycharbi.fr.crt

Conversion du format PEM vers le format PKCS#7

openssl crl2pkcs7 -nocrl -certfile doc.ycharbi.fr.crt -out doc.ycharbi.fr.p7b

Conversion du format DER vers le format PEM

Le format DER comporte généralement les extensions .crt .cer ou .der.

openssl x509 -inform der -in doc.ycharbi.fr.cer -out doc.ycharbi.fr.pem

Simuler un serveur WEB

Il est possible de simuler un serveur WEB HTTPS en une commande. Ceci peut être utile à des fins de test (la page affichera les capacités d'OpenSSL).

openssl s_server -cert /tmp/tls/serveur.crt -key /tmp/tls/serveur.key -accept 44330 -www

OpenSSL écoute alors les requêtes HTTP via TLS sur le port 44330 (toutes adresses source).

Il est possible d'afficher cette page avec un navigateur ou directement depuis le client intégré à OpenSSL :

openssl s_client -connect localhost:44330

Sources de la section

Source