JAVAサーバーとクライアントは、SSLを使用してネットワーク経由で通信します。サーバーとクライアントは、証明書を使用して相互に認証します。サーバーとクライアントで使用されるキーストアのタイプはJKSです。サーバーとクライアントは、キーストアファイルとトラストストアファイルをロードします。キーストアとトラストストアのファイル名は、server.keystore、server.truststore、client.keystore、およびclient.truststoreです。テスト用に自己署名証明書を使用しています。
質問:
Q1。手順6で、サーバーとクライアントの独自の証明書をそれぞれのトラストストアに追加する必要がある理由を知りたいです。
Q2。同じことを達成するためにステップ数を減らすことはできますか?はいの場合、どのように?
サーバーのRSAキー、自己署名証明書、キーストア、トラストストアを作成する手順
秘密のRSAキーを生成する
openssl genrsa -out diagserverCA.key 2048
x509証明書を作成する
openssl req -x509 -new -nodes -key diagserverCA.key \ -sha256 -days 1024 -out diagserverCA.pem
秘密鍵と公開証明書からPKCS12キーストアを作成します。
openssl pkcs12 -export -name server-cert \ -in diagserverCA.pem -inkey diagserverCA.key \ -out serverkeystore.p12
PKCS12キーストアをJKSキーストアに変換します
keytool -importkeystore -destkeystore server.keystore \ -srckeystore serverkeystore.p12 -srcstoretype pkcs12 -alias server-cert
クライアントの証明書をサーバーのトラストストアにインポートします。
keytool -import -alias client-cert \ -file diagclientCA.pem -keystore server.truststore
サーバーの証明書をサーバーのトラストストアにインポートします。
keytool -import -alias server-cert \ -file diagserverCA.pem -keystore server.truststore
クライアントのRSA秘密鍵、自己署名証明書、キーストア、およびトラストストアを作成する手順
秘密鍵を生成する
openssl genrsa -out diagclientCA.key 2048
x509証明書を作成する
openssl req -x509 -new -nodes -key diagclientCA.key \ -sha256 -days 1024 -out diagclientCA.pem
秘密鍵と公開証明書からPKCS12キーストアを作成します。
openssl pkcs12 -export -name client-cert \ -in diagclientCA.pem -inkey diagclientCA.key \ -out clientkeystore.p12
PKCS12キーストアをJKSキーストアに変換します
keytool -importkeystore -destkeystore client.keystore \ -srckeystore clientkeystore.p12 -srcstoretype pkcs12 \ -alias client-cert
サーバーの証明書をクライアントのトラストストアにインポートします。
keytool -import -alias server-cert -file diagserverCA.pem \ -keystore client.truststore
クライアントの証明書をクライアントのトラストストアにインポートします。
keytool -import -alias client-cert -file diagclientCA.pem \ -keystore client.truststore