Outils pour utilisateurs

Outils du site


openssl

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 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é

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout key.pem -out cert.pem

cert.pem peut être utilisé comme certificat serveur et autorité de certification

générer un certificat auto signé avec plusieurs noms

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

Éxaminer le contenu d'un certificat

openssl x509 -noout -issuer -subject -dates  -nameopt multiline -in cacert.pem
openssl x509 -in certificate.crt -text -noout

Convertir de pem vers pcs12

openssl pkcs12 -export -out certif.p12 -inkey userkey.pem -in usercert.pem

Vérifier les version de ssl / tls supportées

nmap  --script ssl-enum-ciphers -p PORT SERVER

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:

openssl s_server -cert mycluster1.crt -CAfile ca.crt -key mycluster1.key  -www
openssl s_client -CAfile /var/lib/mysql/ca.crt -connect localhost:4433

vérifier qu'un certificat, une clé et une requète soient bien liés

openssl x509 -noout -modulus -in webserver.crt
openssl rsa -noout -modulus -in webserver.key
openssl req -noout -modulus -in webserver.csr

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)