Je voudrais mettre en place mon propre OCSP Responder à des fins de test, et cela nécessite que je dispose d'un certificat racine avec quelques certificats générés à partir de celui-ci.
J'ai réussi à créer un certificat auto-signé en utilisant openssl
et je veux l'utiliser comme certificat racine. L'étape suivante consisterait à créer les certificats dérivés, mais je ne parviens pas à trouver la documentation sur la manière de procéder. Quelqu'un sait-il où je peux trouver ces informations ?
-
Edit :
Avec le recul, ma question n'a pas encore trouvé de réponse complète, et pour clarifier le problème, je vais représenter ma chaîne de certificats comme ceci : Racine > A > B > C > ...
Je suis actuellement en mesure de créer les certificats Root et A via le lien ci-dessous, mais je n'ai pas trouvé comment faire une chaîne plus longue :
# Root certificate is created like this:
openssl req -new -newkey rsa:1024 -nodes -out ca.csr -keyout ca.key
openssl x509 -trustout -signkey ca.key -days 365 -req -in ca.csr -out ca.pem
# Certificate A is created like this:
openssl genrsa -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.cer
- Cette commande dépend implicitement du certificat racine, pour lequel elle trouve les informations requises dans le fichier de configuration d'OpenSSL. Cependant, le certificat B ne doit compter que sur A, qui n'est pas enregistré dans le fichier de configuration, donc la commande précédente ne fonctionnera pas ici.
Quelle commande dois-je utiliser pour créer les certificats B et suivants ?
-
Edit :
J'ai trouvé la réponse dans cet article : Le certificat B (chaîne A -> B) peut être créé avec ces deux commandes et cette approche semble bien fonctionner :# Create a certificate request openssl req -new -keyout B.key -out B.request -days 365 # Create and sign the certificate openssl ca -policy policy_anything -keyfile A.key -cert A.pem -out B.pem -infiles B.request
J'ai également modifié le
openssl.cnf
fichier :[ usr_cert ] basicConstraints=CA:TRUE # prev value was FALSE