■ 用語の整理
* キーストアとトラストストア両方とも、Javaに含まれている keytool によって操作・管理可能
キーストア (Key Store)
* 自らの証明書を保管するためのファイル用途
* クライアント認証に使用
トラストストア (Trust Store)
* Javaアプリがサーバ側の証明書を検証するために、サーバ側の証明書を管理するファイル => 通信先のサーバー証明書が送信された再、トラストストアに保存されている証明書によって 署名がなされているかどうかによって認証の可否を判断する用途
* SSL 認証でサーバーを認証する際に使用
■ キーストア / トラストストアの指定の仕方
[1] JavaVMの引数として指定
java -Djavax.net.ssl.trustStore=【トラストストア・パス】 -Djavax.net.ssl.trustStorePassword=【トラストストア・パスワード】 -Djavax.net.ssl.keyStore=【キーストア・パス】 -Djavax.net.ssl.keyStorePassword=【キーストア・パスワード】例
java -Djavax.net.ssl.keyStore=keys/serverKeystore.jks -Djavax.net.ssl.keyStorePassword=changeit -Djavax.net.ssl.trustStore=keys/clientTruststore.jks -Djavax.net.ssl.trustStorePassword=changeit
[2] システムプロパティとして指定
System.setProperty("javax.net.ssl.trustStore", "【トラストストア・パス】"); System.setProperty("javax.net.ssl.trustStorePassword", "【トラストストア・パスワード】"); System.setProperty("javax.net.ssl.keyStore", "【キーストア・パス】"); System.setProperty("javax.net.ssl.keyStorePassword", "【キーストア・パスワード】");例
https://blogs.yahoo.co.jp/dk521123/33122920.html
より抜粋 System.setProperty("javax.net.ssl.keyStore", "keys/serverKeystore.jks"); System.setProperty("javax.net.ssl.keyStorePassword", "changeit"); System.setProperty("javax.net.ssl.trustStore", "keys/clientTruststore.jks"); System.setProperty("javax.net.ssl.trustStorePassword", "changeit");