指定されたキーストアに必要なキーが見つからない場合にデフォルトのキーストアをチェックする方法、またはキーストアのチェック順序を設定する方法があることを知りたいです。
たとえば、次の 2 つのキーストアがあります。
- グローバル Java デフォルト キーストア (cacerts など)
- アップロードした自己署名証明書を含む「Folder1/mykestore.jks」。
プログラムでプロパティを設定しました:
System.setProperty("javax.net.ssl.keyStore","Folder1/mykeystore.jks");
そして、プログラムは mykeystore.jks から証明書に接続しようとしますが、見つからないため、例外がスローされます。ここで、グローバルなデフォルト キーストアまたは存在する場合は他のキーストアもチェックするようにプログラムに義務付けたいと思います。
ユーザーがいくつかのメールボックスを定義し、自己署名証明書をアップロードできるアプリケーションでそれを行う必要がありました。アプリケーションは自己署名証明書ではうまく機能しますが、mykestore.jks に存在しないため、公式証明書を使用する公開メールボックス (GMail など) では機能しません。(keyStoreプロパティを指定せずに接続しようとすると、問題なく接続されます)
おそらく最も簡単な方法は次のようなものです。
try{
System.setProperty("javax.net.ssl.keyStore","Folder1/mykeystore.jks");
store.connect(host,login,password)
catch{
//Set default keystore
//try store.connect() again
}
しかし問題は、デフォルトのJavaキーストアを設定する方法がわからないことです(これはグラリルアプリであり、デフォルトのキーストアへのパスがわかりません)。
たぶん、別のより良い方法がありますか?
よろしく、 アルトゥール