OpenSSL
Comment signer un certificat SSL avec une autorité de certification ?
Prérequis : avoir créé une clef privée et sa CSR, et avoir créé le certificat d'une autorité de certification.
Contexte
Les valeurs utiles ici sont les suivantes :
- Le nom du fichier contenant la CSR : Entreprise_Serveur.csr
- Le nom du fichier contenant le certificat signé : Entreprise_Serveur.crt
- Le nom du fichier contenant le certificat de la CA : Entreprise_CA.crt
- Le nom du fichier contenant la clef privée de la CA : Entreprise_CA.key
- Le nom du fichier contenant le numéro de série : Entreprise_CA.srl
Signature du certificat par la CA (Certificate Autority)
L'autorité de certification Entreprise_CA.crt signe le certificat Entreprise_Serveur.crt pour une durée de validité de 1825 jours.
openssl x509 -req -in Entreprise_Serveur.csr \
-out Entreprise_Serveur.crt \
-days 1825 -CA Entreprise_CA.crt \
-CAkey Entreprise_CA.key -CAcreateserial \
-CAserial Entreprise_CA.srl
La sortie attendue est :
Signature ok
subject=CN = monservice.mondomaine.com
Getting CA Private Key
Vérification
Pour vérifier que le certificat contient bien les informations requises, c'est par ici.
Résultat
On se retrouve avec :
- Entreprise_Serveur.crt : Le certificat signé.
- Entreprise_Serveur.key : La clef privée du certificat signé.
- Entreprise_CA.crt : Le certificat de la CA.
Dans certains cas, seul le certificat signé vous sera utile (dans un navigateur par exemple). Dans d'autres cas, ces trois fichiers seront demandés (par exemple avec ELK).
On peut noter que le certificat Entreprise_Serveur.crt généré ici est au format PEM, mais il est possible de le convertir au format DER.