Créer un certificat avec OpenSSL
Introduction
Ce tutoriel s’intéresse à la création d’un certificat à l’aide d’OpenSSL. Il est largement inspiré (pour ne pas dire intégralement repris) de la documentation disponible à cette URL : How to create Certificates using OpenSSL
Pour créer un nouveau certificat, il faut :
- Créer une requête de certificat ;
- Signer la requête à l’aide d’une autorité de certification.
Etant donné que nous devons disposer d’une autorité de certification pour l’étape n°2, reportez vous à l’article « Créer une autorité de certification avec OpenSSL » sur ce sujet.
Requête de certificat
Le processus de création d’une requête de certificat est le même que celui conduisant à la création d’une autorité de certification, à l’exception du fait qu’il est important de spécifier un Common Name valide qui doit être le FQDN du serveur pour lequel cette requête est générée.
server:~/ca# openssl req -new -nodes -keyout newreq.pem -out newreq.pem
Generating a 2048 bit RSA private key
.....................+++
....................................+++
writing new private key to 'newreq.pem'
...
Country Name (2 letter code) [UA]:
State or Province Name (full name) [LV]:
Locality Name (eg, city) []:Lviv
Organization Name (eg, company) [XYZ Co]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:ldap1.dev.local
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Signature de la requête
Nous allons maintenant signer la requête de certificat à l’aide de notre autorité de certification :
server:~/ca# /usr/lib/ssl/misc/CA.sh -sign
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem: *******
Check that the request matches the signature
Signature ok
Certificate Details:
...
Certificate is to be certified until XXX (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries Data Base Updated Certificate: ... Signed certificate is in newcert.pem
Deux fichiers importants ont été créés : newreq.pem et newcert.pem. Il convient de renommer ces fichiers pour que leur nom corresponde au service pour lequel ils ont été créés, par exmple : ldap1-key.pem and ldap1-cert.pem.
Il est possible de combiner ces deux fichiers en un seul :
cat newreq.pem newcert.pem > new.pem