OpenSSL
Génération de clés et CSR
Pour générer une clé privée (EC) et une demande de signature de certificat (CSR):
SERVICE_NAME=example.com
openssl ecparam -out ${SERVICE_NAME}.key -name prime256v1 -genkey && \
openssl req -new -key ${SERVICE_NAME}.key -out ${SERVICE_NAME}.csr -nodes -subj "/C=FR/CN=${SERVICE_NAME}"
Gestion des Certificats
Création d'un certificat auto-signé (Test)
Pour générer un certificat auto-signé valide 365 jours (utile pour les environnements de test) :
openssl x509 -req -in ${SERVICE_NAME}.csr -signkey ${SERVICE_NAME}.key -out ${SERVICE_NAME}.crt -days 365
Création d'une chaîne complète (Fullchain)
Certains serveurs ou navigateurs nécessitent la chaîne complète de certification. Pour la créer, concaténez votre certificat avec celui de l'autorité intermédiaire (CA) :
Vérification et Dépannage
Il est crucial de vérifier que votre certificat public correspond bien à votre clé privée avant de redémarrer un service.
Vérifier la correspondance Clé / Certificat
Les deux commandes suivantes doivent retourner exactement le même hash MD5.
openssl x509 -noout -modulus -in /etc/ssl/certs/mon-certificat.crt | openssl md5
openssl rsa -noout -modulus -in /etc/ssl/private/ma-cle.key | openssl md5
Warning
Pour une clé EC (Elliptic Curve), la commande rsa ne fonctionnera pas.
Vérifier les détails d'un certificat
Pour afficher les informations complètes (émetteur, dates, sujets) :
Vérifier une demande de signature (CSR)
Erreurs Fréquentes
Erreur "Not an RSA key"
Si vous obtenez unable to load Private Key ou Not an RSA key, cela signifie souvent que le format de la clé est incorrect (ex: format EC lu comme RSA) ou que le fichier est corrompu/vide.
Fichiers vides
Assurez-vous que vos fichiers .crt et .key ne sont pas vides (0 octets). Cela arrive parfois lors de mauvaises manipulations de redirection (>). Toujours vérifier avec :