Astuces Openssl

Request clef + csr :

openssl req -new -newkey rsa:2048 -keyout XXX.key -out XXX.csr

Clef privée déchiffrée :

openssl rsa -in XXX.key -out XXX.unsecure.key

Chiffrer une clef privée :

openssl rsa -in maCle.pem -des3 -out maCle.pem

Construire un pfx/pkcs12 :

openssl pkcs12 -inkey privkey.pem -in chaine.pem -export -out fichier.pfx

Utiliser le paramètre "Legacy" avec des vieux OS Windows :

openssl pkcs12 -in <PKCS#12 Filename> -legacy -out <Encrypted PEM Filename>
openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in <Encrypted PEM Filename> -out <PKCS#12 Filename> -legacy -name "<Display Name>"

Connexion direct d’un client TLS :

openssl s_client -connect address.of.my.isp.com:587 -starttls smtp

Connexion avec une clef privée :

ssh -i clef.txt root@host

Générer un id_rsa.pub à partir d'une clef privée :

ssh-keygen -y -f ~/.ssh/clef-privée > ~/.ssh/id_rsa.pub
# output d'une clef privée 
ssh-keygen -l -f ~/.ssh/id_rsa

Afficher le contenu d'un certificat .pem X509 :

openssl x509 -in <fichier.pem> -noout -text | grep DNS

Vérifier une chaine de certif :

openssl verify -CAfile chaine.pem cert.pem

Output d'un certificat SSL :

openssl x509 -in cert.pem -text -noout

Générer une mini CA et l'utiliser pour créer des certifs (serveur/client)

# CREATION DE LA CA ET SON CERTIF ASSOCIE :
openssl genrsa -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
# dans les réponse de la commande :common name : test-server.home.naoned.net

# CREATION DU CERTIFICAT SERVEUR :
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=test-server.home.naoned.net" -sha256 -new -key server-key.pem -out server.csr
# créer un request CERTIF pour le nom du serveur ainsi que les fonctions d'auth étendue 
echo "subjectAltName = DNS:test-server.home.naoned.net,IP:172.16.16.x;IP:127.0.0.1" >>extFile.cnf
echo "extendedKeyUsage = serverAuth" >>extfile.cnf
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
# ok le certificat du serveur est créé et validé via la CA ainsi qu'avec l'extension "serverAuth"
# on fait la même chose pour le client qui se connectera
openssl genrsa -out key.pem 4096
openssl req -subj "/CN=client" -new -key key.pem -out client.csr
echo "extendedKeyUsage = clientAuth" >>extfile-client.cnf
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf