SSLを処理するときにJAVAがデフォルトのトラストストアを識別する方法が必要であることは誰にとっても明らかだと思います。そのため、この情報は何らかの方法でJAVAに渡されているので、手元にある「更新された」質問はそれを行う方法だと思います。 1回限りの方法で、その後は忘れてしまいます。
私が見つけた最善の方法はJAVA_TOOL_OPTIONS
、OSレベルで環境変数を設定することでした。この環境変数が設定されている場合、JAVAは、この環境変数で指定した引数を使用してデフォルトで起動されます。
-Djavax.net.ssl.trustStore=/Library/Java/Home/lib/security/cacerts
したがって、 JVMを起動するたび に設定する必要はありません。代わりJAVA_TOOL_OPTIONS
に、OSレベルで環境変数を「1回」に値をas -Djavax.net.ssl.trustStore=/Library/Java/Home/lib/security/cacerts
に設定すると、完了です。
以下は、「さらなる読み物」の#1からの抜粋です。
この環境変数が設定されている場合、(JNI Invocation APIの)JNI_CreateJavaVM関数は、環境変数の値をJavaVMInitArgs引数で指定されたオプションの前に追加します。
以下に注意すべき注意点のみを記載します。「さらなる読み物」の#1からの抜粋です。
場合によっては、セキュリティ上の理由でこのオプションが無効になります。たとえば、Solaris OSでは、有効なユーザーまたはグループIDが実際のIDと異なる場合にこのオプションが無効になります。
以下は注意すべきもう1つの警告(「さらなる読み物」の#1からの抜粋)ですが、コンテキストはVM選択の議論に関するものではないため、関連性はありませんが、言及するだけです。
この環境変数はJNI_CreateJavaVMが呼び出されたときに検査されるため、ランチャーによって通常処理されるオプション(たとえば、-clientまたは-serverオプションを使用したVMの選択)でコマンドラインを拡張するために使用することはできません。
さらなる読み物: