Outils pour utilisateurs

Outils du site


openssl

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

openssl [2017/06/23 12:49] (Version actuelle)
Ligne 1: Ligne 1:
 +
 +==== Principes ====
 +
 +  * chiffer un message avec la clé publique du destinataire. Celui-ci pourra seul déchiffrer le message avec sa cé privée.
 +  * //hasher// un message: appliquer un alogrithme au message générant une chaine de taille fixe unique.
 +  * signer un message: chiffrer message + hash + numéro de séquence avec sa clé orivée. tout le monde peut déchiffrer,​ mais on a la garantie que le message provient de moi et n'a pas été altéré. le numéro de séquence empêche la réutilisation de la signature.
 +
 +Les **certificats** permettent de garantir que la clé publique avec laquelle on chiffre le message à envoyer au destinataire est bien celle de ce dernier. Le certificat est signé par une entité de confiance appelée //autorité de certification//​.
 +
 +Un certificat contient : 
 +  * la clé publique et l'​identité du //sujet//
 +  * l'​identité et la signature de la //CA//
 +  * une durée de validité
 +
 +Une //connexion ssl// contient les étapes suivantes:
 +  * Choix des algorithmes de chiffrement à utiliser. (//Cypher suite//)
 +  * Génération et [[:​clients:​sgmo:​partage|partage]] de la clé de session
 +  * (authentification du serveur)
 +  * (authentification du client)
 +
 +Une //Cipher suite// est composée des éléments suivants: méthode d'​échange de clé (RSA), algo de chiffrement (sans, RC4, DES, 3DES), hash message (sans, md5, sha-1)
 +
 +==== générer un simple certificat auto signé ====
 +
 +<​code>​
 +openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout key.pem -out cert.pem
 +</​code>​
 +
 +cert.pem peut être utilisé comme certificat serveur et autorité de certification
 +
 +==== générer un certificat auto signé avec plusieurs noms ====
 +<​code>​
 +openssl req -newkey rsa:2048 \
 +-keyout key.pem \
 +-nodes \
 +-out csr.pem \
 +-subj /​countryName=FR/​stateOrProvinceName=IDF/​organizationName=Orsys/​CN=CHANGEME/​
 +
 +cat >> /​root/​ext-tls-server<​EOF
 +ext-tls-serveur ​
 +basicConstraints=CA:​FALSE
 +keyUsage=digitalSignature,​keyEncipherment,​dataEncipherment,​keyAgreement
 +extendedKeyUsage=serverAuth
 +subjectAltName=DNS:​CHANGEME,​IP:​CHANGEME
 +EOF
 +
 + ​openssl x509 -req -days 30 \
 +-in csr.pem
 + ​-extfile /​root/​ext-tls-serveur \
 +-signkey key.pem \
 +-out crt.pem
 +</​code>​
 +==== Éxaminer le contenu d'un certificat ====
 +
 +<​code>​
 +openssl x509 -noout -issuer -subject -dates ​ -nameopt multiline -in cacert.pem
 +openssl x509 -in certificate.crt -text -noout
 +</​code>​
 +
 +
 + ===== Convertir de pem vers pcs12 =====
 +
 +<​code>​
 +openssl pkcs12 -export -out certif.p12 -inkey userkey.pem -in usercert.pem
 +</​code>​
 +
 + ==== Vérifier les version de ssl / tls supportées ====
 +<​code>​
 +nmap  --script ssl-enum-ciphers -p PORT SERVER
 +</​code>​
 +
 +on peut utiliser les options -sslv3 -tls1 à openssl s_client aussi
 +
 + ==== Troubleshooting ssl issues ====
 +
 +On peut utiliser ssl en mode client et/ou serveur basique:
 +<​code>​
 +openssl s_server -cert mycluster1.crt -CAfile ca.crt -key mycluster1.key ​ -www
 +</​code>​
 +
 +<​code>​
 +openssl s_client -CAfile /​var/​lib/​mysql/​ca.crt -connect localhost:​4433
 +</​code>​
 +
 +
 +__vérifier qu'un certificat, une clé et une requète soient bien liés__
 +<​code>​
 +openssl x509 -noout -modulus -in webserver.crt
 +openssl rsa -noout -modulus -in webserver.key
 +openssl req -noout -modulus -in webserver.csr
 +</​code>​
 +=== Messages d'​erreur ===
 +
 +  TLS error -8172:​Peer'​s certificate issuer has been marked as not trusted by the user
 +Le certificat de la CA est manquant ou illisible
 +
 +  TLS certificate verification:​ Error, self signed certificate
 +
 +By default, self-signed certificates are not trusted. To enable them to be trusted, add TLS_REQCERT allow to /​etc/​openldap/​ldap.conf.
 +
 +# vim: set filetype=dokuwiki:​
  
openssl.txt · Dernière modification: 2017/06/23 12:49 (modification externe)