maxime:openbsd:docs:openssl

Utilisation

La première étape consiste à générer une clé au moyen d'un algorithme asymétrique.

Génération d'une clé RSA de 2048 bits :

openssl genrsa -out /etc/ssl/private/server.key 2048

Génération d'une clé ECDSA en utilisant la courbe sect571r1 (NIST/SECG curve over a 571 bit binary field) :

  • d'abord on choisit une courbe dans la liste des courbes supportées par OpenSSL :
openssl ecparam -list_curves
  • ensuite on génère la clé :
openssl ecparam -out /etc/ssl/private/server.key -name sect571r1 -genkey

Une fois la clé en poche on peut générer une CSR (Certificate Signing Request) basée sur cette clé :

openssl req -sha256 -new -key /etc/ssl/private/server.key -out /etc/ssl/private/server.csr

S'il nécessaire/utile d'ajouter un SubjectAltName (notamment pour spécifier plusieurs noms d'hôtes valides pour un seul et même certificat), il faut modifier /etc/ssl/openssl.cnf pour qu'il prenne en compte ce réglage (⇒ http://wiki.cacert.org/FAQ/subjectAltName).

Le CSR généré doit être transmis à une autorité de certification qui y répondra en joignant un certificat.

Autorités de certification

Interne (PKI)
Externes
  • CACERT est une autorité de certification communautaire (et gratuite), non reconnue par Microsoft Windows et Mozilla Firefox, mais parfois/souvent reconnue par les systèmes UNIX libres (distribution basées sur GNU et Linux, *BSD, etc.) ;
  • StartSSL est une startup Israélienne qui distribue des certificats X509 gratuits pour une utilisation non-commerciale ;
  • etc.
autosignature

blah

L'article de l'OpSec de Mozilla dans MISC recommande d'aligner la taille des paramètres Diffie-Hellman sur celle de la clé RSA (si on a choisi une clé RSA).

openssl dhparam -2 -out /etc/ssl/private/server.dh 4096

⇒ SSL Shopper fournit quelques outils web rapides et simples : http://www.sslshopper.com/ssl-certificate-tools.html ; tous ces outils sont basés sur des commandes OpenSSL simples, détaillées sur le site web.

Décoder un CSR

openssl req -in mycsr.csr -noout -text

Décoder un certificat X.509

openssl x509 -in certificate.crt -text -noout

Valider une installation TLS/SSL

openssl s_client -connect www.mouet-mouet.net:443

Génerer une clé RSA de 2048 bits, et la stocker dans un fichier chiffré en utilisant AES 256 (protégé par une phrase de passe) :

openssl genrsa -aes256 -out ca.key 2048

Générer un certificat basé sur cette clé (certificat racine) :

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

Une fois un CSR généré (à partir d'une clé elle aussi générée), il doit être signé par une autorité de confiance:

openssl x509 -req -sha256 -days 730 -in host.network.tld.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out host.network.tld.crt

Le numéro de série doit être différent pour chaque certificat signé avec cette clé. On peut incrémenter un numéro ou prendre un hachage du CSR…

Le certificat racine doit être distribué pour pouvoir être utilisé comme base de validation des certificats signés.

Configuration

blah

Bibliographie

  • maxime/openbsd/docs/openssl.txt
  • Dernière modification: 2021/10/08 00:17
  • (modification externe)