Je souhaite configurer mon propre répondeur OCSP (uniquement à des fins de test). Cela nécessite que je possède un certificat racine et quelques certificats générés à partir de celui-ci.
J'ai réussi à créer un certificat auto-signé en utilisant openssl. Je veux l'utiliser comme certificat racine. La prochaine étape serait de créer les certificats dérivés. Je n'arrive pas à trouver la documentation sur la façon de faire cela cependant. Est-ce que quelqu'un sait où je peux trouver cette information?
Modifier
Rétrospectivement, ma question n’a pas encore été complètement répondue. Pour clarifier le problème, je vais représenter ma chaîne de certificats comme suit:
ROOT -> A -> B -> C -> ...
Je suis actuellement en mesure de créer les certificats ROOT et A, mais je n’ai pas trouvé comment créer une chaîne plus longue.
Ma commande pour créer le certificat racine est:
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
Le certificat A est créé comme ceci:
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 openssl.
Cependant, le certificat B ne doit s’appuyer que sur A, qui n’est pas enregistré dans le fichier de configuration. La commande précédente ne fonctionnera donc pas ici.
Quelle ligne de 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:
# 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 aussi changé le fichier openssl.cnf:
[ usr_cert ]
basicConstraints=CA:TRUE # prev value was FALSE
Cette approche semble bien fonctionner.
la source
Réponses:
Vous pouvez utiliser OpenSSL directement.
Créez une clé privée d'autorité de certification (il s'agit de la clé la plus importante):
Créez votre certificat auto-signé CA:
Émettez un certificat client en générant d'abord la clé, puis demandez (ou utilisez-en un fourni par un système externe), puis signez le certificat en utilisant la clé privée de votre autorité de certification:
(Vous devrez peut-être ajouter des options car j'utilise ces commandes avec mon fichier openssl.conf. Vous devrez peut-être d'abord configurer votre propre fichier .conf.)
la source
openssl ca -in client.csr -out client.cer -cern ca.pem -keyfile ca.key
, mais il souhaite undemoCA
répertoire et divers accessoires.Une fois que vous avez créé votre autorité de certification, vous pouvez l’utiliser pour signer ainsi:
Créer une clé:
Créer un csr:
Le signer:
et ainsi de suite en remplaçant * _A par * _B et
CA_certificate_you_created.crt
parcrt_A.crt
etCA_key_you_created.key
aveckey_A.key
Votre changement:
signifie que les certificats que vous émettez peuvent être utilisés pour signer d'autres certificats.
la source
OpenSSL est livré avec un script Perl "CA.pl" pour vous aider à créer un certificat d' autorité de certification racine auto-signé , avec la clé privée correspondante, ainsi que quelques fichiers et répertoires simples vous permettant de garder une trace des futurs certificats que vous signez ) avec cette racine CA. Il vous aide également à générer d'autres paires de clés et demandes de signature de certificat (CSR) et vous permet de traiter ces CSR (c'est-à-dire, émettre des certificats pour eux), etc.
Notez que de nombreux produits exigent que les certificats de certification contiennent un certain attribut les identifiant comme certificats de certification, sinon ils ne seront pas acceptés en tant que signataires / émetteurs valides d'autres certificats. Si le certificat auto-signé que vous avez créé ne contient pas cet attribut, vous aurez peut-être du mal à le traiter comme un certificat racine valide.
Si je me souviens bien, la syntaxe ressemble à ceci:
la source
/usr/lib/ssl/misc/CA.pl
J'ai trouvé ce post: https://stackoverflow.com/questions/19665863/how-do-i-use-a-self-signed-certificate-for-a-https-node-js-server
C'est pour Node.JS mais le script de ce référentiel GitHub utilise les commandes openSLL pour créer un cert d'autorité de certification racine et un cert de domaine.
Courir en utilisant:
bash make-root-ca-and-certificates.sh 'example.com'
Ou pour localhost utilisant:
bash make-root-ca-and-certificates.sh 'localhost'
make-root-ca-and-certificates.sh
la source