JavaサーバーとクライアントはSSLを使用してネットワーク経由で通信します。サーバーとクライアントは証明書を使用して相互に認証します。サーバーとクライアントが使用するキーストアタイプはJKSです。キーストアとトラストストアのファイル名は、サーバーとクライアントは、server.keystore、server.truststore、client.keystore、およびclient.truststoreです。
自己署名証明書をテストのみに使用しています。
質問:
Q1。手順6で、サーバーとクライアントの独自の証明書をそれぞれのトラストストアに追加する必要がある理由を知りたいのですが。
Q2。同じことを達成するためにステップ数を減らすことはできますか?はいの場合、どのように?
1。秘密RSAキーを生成します
openssl genrsa -out diagserverCA.key 2048
2。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
4。PKCS12キーストアをJKSキーストアに変換します
keytool -importkeystore -destkeystore server.keystore -srckeystore serverkeystore.p12 -srcstoretype pkcs12 -alias server-cert
5。クライアントの証明書をサーバーのトラストストアにインポートします。
keytool -import -alias client-cert -file diagclientCA.pem -keystore server.truststore
6。サーバーの証明書をサーバーのトラストストアにインポートします。
keytool -import -alias server-cert -file diagserverCA.pem -keystore server.truststore
1。秘密鍵を生成します
openssl genrsa -out diagclientCA.key 2048
2。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
4。PKCS12キーストアをJKSキーストアに変換します
keytool -importkeystore -destkeystore client.keystore -srckeystore clientkeystore.p12 -srcstoretype pkcs12 -alias client-cert
5。サーバーの証明書をクライアントのトラストストアにインポートします。
keytool -import -alias server-cert -file diagserverCA.pem -keystore client.truststore
6。クライアントの証明書をクライアントのトラストストアにインポートします。
keytool -import -alias client-cert -file diagclientCA.pem -keystore client.truststore
Q1。手順6で、サーバーとクライアントの独自の証明書をそれぞれのトラストストアに追加する必要がある理由を知りたいのですが。
あなたはしません。サーバー証明書とクライアント証明書を互いのトラストストアに追加します。サーバーとクライアントは、自分の証明書を信頼する必要はありませんが、お互いの証明書を信頼する必要があります。
Q2。同じことを達成するためにステップ数を減らすことはできますか?はいの場合、どのように?
keytool
ですべてを行うことができます。文書化された例がたくさん。 openssl
を使用する必要はまったくありません。
批評:
ロットを実行するための正しい手順は、JDKドキュメントの JSSEリファレンスガイド にあります。それぞれ約3ステップ。しかし、実際に示されているのは、自己署名証明書は実際に印刷された紙の価値がないということです。 CA署名付き証明書を取得します。はるかに多くの価値と展開がはるかに簡単です(エクスポート手順なし)。
このゴミはどこで手に入れたの?