Abbiamo server e client JAVA che comunicano su una rete tramite SSL. Il server e il client si autenticano reciprocamente mediante certificati. Il tipo di keystore utilizzato dal server e dal client è JKS. Il server e il client caricano i file di archivio chiavi e truststore. I nomi dei file keystore e truststore sono: server.keystore, server.truststore, client.keystore e client.truststore. Sto usando i certificati autofirmati solo per i test.
Domande:
Q1. Vorrei sapere perché devo aggiungere i certificati del server e del client nei rispettivi truststores, nel passaggio 6.
Q2. Posso ridurre i passaggi numerici per ottenere la stessa cosa? Se sì, allora come?
Passaggi per creare chiave RSA, certificati autofirmati, keystore e truststore per un server
Genera una chiave RSA privata
openssl genrsa -out diagserverCA.key 2048
Crea un certificato x509
openssl req -x509 -new -nodes -key diagserverCA.key \ -sha256 -days 1024 -out diagserverCA.pem
Creare un keystore PKCS12 da chiave privata e certificato pubblico.
openssl pkcs12 -export -name server-cert \ -in diagserverCA.pem -inkey diagserverCA.key \ -out serverkeystore.p12
Converti il keystore PKCS12 in un keystore JKS
keytool -importkeystore -destkeystore server.keystore \ -srckeystore serverkeystore.p12 -srcstoretype pkcs12 -alias server-cert
Importa il certificato di un client nel truststore del server.
keytool -import -alias client-cert \ -file diagclientCA.pem -keystore server.truststore
Importa il certificato di un server nel truststore del server.
keytool -import -alias server-cert \ -file diagserverCA.pem -keystore server.truststore
Passaggi per creare chiave privata RSA, certificato autofirmato, keystore e truststore per un client
Genera una chiave privata
openssl genrsa -out diagclientCA.key 2048
Crea un certificato x509
openssl req -x509 -new -nodes -key diagclientCA.key \ -sha256 -days 1024 -out diagclientCA.pem
Creare il keystore PKCS12 dalla chiave privata e dal certificato pubblico.
openssl pkcs12 -export -name client-cert \ -in diagclientCA.pem -inkey diagclientCA.key \ -out clientkeystore.p12
Converti un keystore PKCS12 in un keystore JKS
keytool -importkeystore -destkeystore client.keystore \ -srckeystore clientkeystore.p12 -srcstoretype pkcs12 \ -alias client-cert
Importare il certificato di un server nel truststore del client.
keytool -import -alias server-cert -file diagserverCA.pem \ -keystore client.truststore
Importare il certificato di un cliente nel truststore del cliente.
keytool -import -alias client-cert -file diagclientCA.pem \ -keystore client.truststore