Comment créer ma propre chaîne de certificats ?
Je voudrais configurer mon propre répondeur OCSP à des fins de test, ce qui m'oblige à avoir 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, cependant, je n'arrive pas à trouver la documentation sur la façon de procéder. Quelqu'un sait-il où je peux trouver ceci des informations ?
-
Modifier:
Rétrospectivement, ma question n'a pas encore complètement répondu, et pour clarifier le problème, je représenterai ma chaîne de certificats comme ceci: Root> A> B> C>...
Je suis actuellement en mesure de créer les certificats Root et A via ce qui suit, mais je n'ai pas trouvé comment créer 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 le certificat requis info dans le fichier de configuration OpenSSL, cependant, le certificat B ne doit reposer 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 des certificats B et au-delà ?
-
Modifier:
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
I a également changé le fichier
openssl.cnf
:[ usr_cert ] basicConstraints=CA:TRUE # prev value was FALSE