SSLと証明書キーストア 質問する

SSLと証明書キーストア 質問する

Java プログラムは、証明書を含むキーストアの場所をどのようにして知るのでしょうか?

あるいは、Java プログラムにキーストアを探す場所を指示するにはどうすればよいでしょうか?

何らかの方法でキーストアを指定した後、サーバーをクライアントに認証するために使用する証明書をどのように指定すればよいでしょうか?

ベストアンサー1

SSL プロパティは、システム プロパティを介して JVM レベルで設定されます。つまり、プログラムを実行するときに設定することも (java -D....)、System.setProperty を実行してコード内で設定することもできます。

設定する必要がある特定のキーは次のとおりです。

javax.net.ssl.keyStore- アプリケーション プロセス独自の証明書と秘密鍵を含む Java キーストア ファイルの場所。Windows では、指定されたパス名にはバックスラッシュの代わりにスラッシュ (/) を使用する必要があります。

javax.net.ssl.keyStoreパスワード- javax.net.ssl.keyStore で指定されたキーストア ファイルから秘密鍵にアクセスするためのパスワード。このパスワードは、キーストア ファイルのロックを解除するため (ストア パスワード)、およびキーストアに保存されている秘密鍵を復号化するため (キー パスワード) の 2 回使用されます。

javax.net.ssl.trustStore- このアプリケーション プロセスによって信頼される CA 証明書のコレクションを含む Java キーストア ファイルの場所 (信頼ストア)。Windows では、指定されたパス名には、/バックスラッシュ ( ) の代わりにスラッシュ ( ) を使用する必要があります\

このプロパティを使用して信頼ストアの場所が指定されていない場合、SunJSSE 実装は次の場所 (順番に) でキーストア ファイルを検索して使用します。

  1. $JAVA_HOME/lib/security/jssecacerts
  2. $JAVA_HOME/lib/security/cacerts

javax.net.ssl.trustStoreパスワード- で指定されたキーストア ファイルのロックを解除するためのパスワード (ストア パスワード) javax.net.ssl.trustStore

javax.net.ssl.trustStoreタイプ- (オプション) Java キーストア ファイル形式の場合、このプロパティの値は jks (または JKS) になります。デフォルト値が既に jks になっているため、通常はこのプロパティを指定しません。

javax.net デバッグ- SSL/TLS レイヤーのログ記録をオンにするには、このプロパティを ssl に設定します。

おすすめ記事