Serwer i klient JAVA komunikują się przez sieć za pomocą protokołu SSL. Serwer i klient wzajemnie się uwierzytelniają za pomocą certyfikatów. Typ magazynu kluczy używany przez serwer i klienta to JKS. Serwer i klient ładują swoje pliki kluczy i pliki zaufanych certyfikatów. Nazwy plików magazynu kluczy i zaufanych certyfikatów to: server.keystore, server.truststore, client.keystore i client.truststore. Używam certyfikatów z podpisem własnym wyłącznie do testów.
Pytania:
Pytanie 1 Chciałbym wiedzieć, dlaczego muszę dodać własne certyfikaty serwera i klienta do odpowiednich magazynów zaufania w kroku 6.
Q2 Czy mogę zmniejszyć liczbę kroków, aby osiągnąć to samo? Jeśli tak, to jak?
Kroki tworzenia klucza RSA, certyfikatów z podpisem własnym, magazynu kluczy i magazynu zaufanych certyfikatów dla serwera
Wygeneruj prywatny klucz RSA
openssl genrsa -out diagserverCA.key 2048
Utwórz certyfikat x509
openssl req -x509 -new -nodes -key diagserverCA.key \ -sha256 -days 1024 -out diagserverCA.pem
Utwórz magazyn kluczy PKCS12 z klucza prywatnego i certyfikatu publicznego.
openssl pkcs12 -export -name server-cert \ -in diagserverCA.pem -inkey diagserverCA.key \ -out serverkeystore.p12
Konwertuj magazyn kluczy PKCS12 na magazyn kluczy JKS
keytool -importkeystore -destkeystore server.keystore \ -srckeystore serverkeystore.p12 -srcstoretype pkcs12 -alias server-cert
Zaimportuj certyfikat klienta do magazynu zaufania serwera.
keytool -import -alias client-cert \ -file diagclientCA.pem -keystore server.truststore
Zaimportuj certyfikat serwera do magazynu zaufania serwera.
keytool -import -alias server-cert \ -file diagserverCA.pem -keystore server.truststore
Kroki tworzenia klucza prywatnego RSA, certyfikatu z podpisem własnym, magazynu kluczy i magazynu zaufanych certyfikatów dla klienta
Wygeneruj klucz prywatny
openssl genrsa -out diagclientCA.key 2048
Utwórz certyfikat x509
openssl req -x509 -new -nodes -key diagclientCA.key \ -sha256 -days 1024 -out diagclientCA.pem
Utwórz magazyn kluczy PKCS12 z klucza prywatnego i certyfikatu publicznego.
openssl pkcs12 -export -name client-cert \ -in diagclientCA.pem -inkey diagclientCA.key \ -out clientkeystore.p12
Przekształć magazyn kluczy PKCS12 w magazyn kluczy JKS
keytool -importkeystore -destkeystore client.keystore \ -srckeystore clientkeystore.p12 -srcstoretype pkcs12 \ -alias client-cert
Zaimportuj certyfikat serwera do magazynu zaufania klienta.
keytool -import -alias server-cert -file diagserverCA.pem \ -keystore client.truststore
Zaimportuj certyfikat klienta do magazynu zaufania klienta.
keytool -import -alias client-cert -file diagclientCA.pem \ -keystore client.truststore