TLDR: вам не нужно ничего делать
Новый java.net.http.HttpClient
, например, более старый HttpsURLConnection
, а также обычный SSL[Server]Socket
и другие, по умолчанию SSLContext.getDefault()
, который по умолчаниюиспользует системные свойства javax.net.ssl.{key,trust}Store*
- читая их только один раз, при первом обращении к нему в данной JVM;любые настройки, сделанные после этого (обязательно по коду), игнорируются.
Начальные значения этих системных свойств (как и другие входные данные для JVM, а не автоматически устанавливаются как java.version
) могут быть установлены с помощью -D
опция в командной строке или в переменной окружения _JAVA_OPTIONS
;оба они также могут использоваться для установки других системных свойств, которые не имеют ничего общего с SSL / TLS, и других параметров, которые не являются системными свойствами.Сама Java не использует env var JAVA_OPTS
, но некоторые вещи, которые запускают Java как подчиненный (например, мониторы служб, IDE, наборы инструментов и т. Д. И т. Д.), Могут использовать (содержимое) env var какчасть созданной командной строки.
Обратите внимание, что если вы не указываете sysprops, хранилище доверенных сертификатов по умолчанию равно JRE / lib / security / cacerts (которое обычно поставляется со стандартным publicCA, такие как Verisign / Symantec / Digicert, GoDaddy и т. Д.), Но в хранилище ключей нет настроек по умолчанию, т. Е. Не выполняется проверка подлинности клиента.