« 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/ | 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/ | chmod 400 /etc/ssl/private/serveur.key | ||
'''Chaînage du certificat''' | '''Chaînage du certificat''' | ||
cat /etc/ssl/certs/ | 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