2015-06-04 27 views
9

Voglio creare la catena di certificati in Java come segue:Come creare una catena di certificati utilizzando keytool?

ca.mycompany.com 
|--asia.mycompany.com 
    |--india.mycompany.com 

dove ca.mycompany.com è un certificato principale (auto firmato).

So che questo è possibile con OpenSSL. Ma è possibile ottenere questo con keytool?

In caso contrario, è possibile ottenerlo con la libreria NSS di Mozilla?

+1

No. È possibile creare solo certificati autofirmati, non catene. È possibile * importare * catene da un'altra parte. – EJP

risposta

20

C'è un esempio nella keytool documentation che mostra come eseguire questa operazione:

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 

È inoltre possibile generare catene di certificati abbastanza facilmente con KeyStore Explorer:

  1. Creare una nuova coppia di chiavi, che implica creazione di un certificato autofirmato (la CA principale).
  2. Fare clic con il pulsante destro del mouse sul certificato CA radice e selezionare "Firma nuova coppia di chiavi", creando il certificato CA secondario e la coppia di chiavi.
  3. Fare clic con il pulsante destro del mouse sul certificato CA secondario e selezionare nuovamente "Firma nuova coppia di chiavi".

Signing a new certificate

La catena risultante:

enter image description here

+0

Il passo 6 delle tue istruzioni mi dà l'errore 'keytool: java.lang.Exception: Impossibile stabilire la catena dalla risposta ' – Stewart

+0

@Stewart Quelle non sono _my_ istruzioni, vengono copiate dalla documentazione keytool ufficiale (link s. Nella mia risposta) . Ad ogni modo, ho risolto il problema. – Omikron

+0

Vedo cosa hai fatto. Root e CA sono stati importati insieme come una catena. – Stewart

4

Questo è un tutorial perfetto che consentono di andare anche se il processo di creating certificate chain using keytool. Fondamentalmente, il processo è necessario firmare il certificato con le chiavi dalla CA e quindi installare il certificato nel keystore che si crea.