Wir haben JAVA Server und Client über ein Netzwerk mit SSL kommunizieren. Der Server und der Client authentifizieren sich gegenseitig mithilfe von Zertifikaten. Der vom Server und Client verwendete Keystore-Typ ist JKS. Der Server und der Client laden ihre Keystore- und Truststore-Dateien. Die Namen der Keystore- und Truststore-Dateien lauten: server.keystore, server.truststore, client.keystore und client.truststore. Ich verwende selbstsignierte Zertifikate nur zum Testen.
Fragen:
Q1. Ich möchte wissen, warum ich Server- und Client-eigene Zertifikate in den jeweiligen Truststores in Schritt 6 hinzufügen muss.
Q2. Kann ich die Anzahl der Schritte verringern, um dasselbe zu erreichen? Wenn ja, wie?
Schritte zum Erstellen eines RSA-Schlüssels, selbstsignierter Zertifikate, eines Keystores und eines Truststores für einen Server
Generieren Sie einen privaten RSA-Schlüssel
openssl genrsa -out diagserverCA.key 2048
Erstellen Sie ein x509-Zertifikat
openssl req -x509 -new -nodes -key diagserverCA.key \ -sha256 -days 1024 -out diagserverCA.pem
Erstellen Sie einen PKCS12-Keystore aus privatem Schlüssel und öffentlichem Zertifikat.
openssl pkcs12 -export -name server-cert \ -in diagserverCA.pem -inkey diagserverCA.key \ -out serverkeystore.p12
Konvertieren Sie den PKCS12-Keystore in einen JKS-Keystore
keytool -importkeystore -destkeystore server.keystore \ -srckeystore serverkeystore.p12 -srcstoretype pkcs12 -alias server-cert
Importieren Sie das Zertifikat eines Clients in den Trust Store des Servers.
keytool -import -alias client-cert \ -file diagclientCA.pem -keystore server.truststore
Importieren Sie das Zertifikat eines Servers in den Trust Store des Servers.
keytool -import -alias server-cert \ -file diagserverCA.pem -keystore server.truststore
Schritte zum Erstellen eines privaten RSA-Schlüssels, eines selbstsignierten Zertifikats, eines Keystores und eines Truststores für einen Client
Generieren Sie einen privaten Schlüssel
openssl genrsa -out diagclientCA.key 2048
Erstellen Sie ein x509-Zertifikat
openssl req -x509 -new -nodes -key diagclientCA.key \ -sha256 -days 1024 -out diagclientCA.pem
Erstellen Sie einen PKCS12-Keystore aus einem privaten Schlüssel und einem öffentlichen Zertifikat.
openssl pkcs12 -export -name client-cert \ -in diagclientCA.pem -inkey diagclientCA.key \ -out clientkeystore.p12
Konvertieren Sie einen PKCS12-Keystore in einen JKS-Keystore
keytool -importkeystore -destkeystore client.keystore \ -srckeystore clientkeystore.p12 -srcstoretype pkcs12 \ -alias client-cert
Importieren Sie das Zertifikat eines Servers in den Trust Store des Clients.
keytool -import -alias server-cert -file diagserverCA.pem \ -keystore client.truststore
Importieren Sie das Zertifikat eines Clients in den Trust Store des Clients.
keytool -import -alias client-cert -file diagclientCA.pem \ -keystore client.truststore