Je veux créer une chaîne de certificats en Java comme suit:
ca.mycompany.com
|--asia.mycompany.com
|--india.mycompany.com
où ca.mycompany.com est un certificat racine (auto-signé).
Je sais que c'est possible avec OpenSSL. Mais est-il possible d'y parvenir avec keytool?
Sinon, puis-je y parvenir avec la bibliothèque Mozilla NSS?
Il y a un exemple dans la documentation keytool qui montre comment faire ceci:
keytool -genkeypair -keystore root.jks -alias root -ext bc:c
keytool -genkeypair -keystore ca.jks -alias ca -ext bc:c
keytool -genkeypair -keystore server.jks -alias server
keytool -keystore root.jks -alias root -exportcert -rfc > root.pem
keytool -storepass <storepass> -keystore ca.jks -certreq -alias ca | keytool -storepass <storepass> -keystore root.jks -gencert -alias root -ext BC=0 -rfc > ca.pem
cat root.pem ca.pem > cachain.pem
keytool -keystore ca.jks -importcert -alias ca -file cachain.pem
keytool -storepass <storepass> -keystore server.jks -certreq -alias server | keytool -storepass <storepass> -keystore ca.jks -gencert -alias ca -ext ku:c=Dig,keyEncipherment -rfc > server.pem
cat root.pem ca.pem server.pem > serverchain.pem
keytool -keystore server.jks -importcert -alias server -file serverchain.pem
Vous pouvez également générer des chaînes de certificats assez facilement avec KeyStore Explorer :
La chaîne résultante:
Ceci est un tutoriel parfait qui vous aide à passer par le processus de création d'une chaîne de certificats à l'aide de keytool . Fondamentalement, le processus consiste à signer le certificat avec les clés de l'autorité de certification, puis à installer le certificat dans le magasin de clés que vous créez.