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
    
demandé sur