cacerts
ファイルとjssecacerts
ファイルの違いについて真剣に混乱しています。
デフォルトでは、Javaはjssecacerts
ファイルを探し、次にcacerts
ファイルを探します。
しかし、jssecacerts
ファイルのポイントは何ですか?
私の理解では、新しいトラストストアを使用する必要がある場合、cacerts
のコピーを作成し、すべての新しい信頼できるCAをそのコピーに追加する必要があります。 cacerts
のコピー(新しいCAを含む)は、-Djavax.net.ssl.trustStore
システムプロパティ。そうすれば、そのマシンで実行される他のJavaアプリケーションは、デフォルト以外のCAを誤って信頼することはありません。
Java™Secure Socket Extension(JSSE)リファレンスガイド から、TrustManagerFactory
は以下の手順を使用して、信頼データを見つけようとします。
javax.net.ssl.trustStore
Java-home/lib/security/jssecacerts
Java-home/lib/security/cacerts
(デフォルトで出荷)これは、構成概念よりも規約に基づいていると思います。余分なコーディング作業なしで、cacert
が使用されます。追加のプライベートCA/Signing証明書の場合、開発者は第1または第2の方法のいずれかを使用できます。前者は特定の証明書のみを含み、後は証明書のリストを含みます。
私が理解しているように、cacerts
ファイルは出荷時のデフォルトです。
jssecacerts
ファイルがある場合は、cacerts
ファイルに加えてではなく、排他的に使用されます。
私の推奨事項:cacerts
ファイルを保持し、jssecacerts
にコピーして、必要なプライベートCA /署名証明書をjssecacerts
ファイルに追加します。
良い質問。 JSSEはかつてアドオンであったという歴史的事実から生じたと思います。 JSSEでは複数のプロバイダーが許可されているため、jssecacerts
はJSSEプロバイダー専用であり、他のプロバイダーは独自のものを使用する場合があります。
しかし、JSSEの前に誰がcacertsを使用したかは別の質問です。