Запуск настроек безопасности дампа-доверия -d на моем MacBook показывает некоторые сертификаты конкретной компании, которым я хочу, чтобы Java TrustManager доверял при создании соединений SSL/TLS с внутренними серверами компании. Я могу сделать это, установив свойство командной строки Java:
Код: Выделить всё
-Djavax.net.ssl.trustStoreType=KeychainStore
Выполнение команды dump-trust-settings -s показывает все доверенные корни по умолчанию, которые позволяют Java устанавливать соединения SSL/TLS с интернет-серверами. Я могу добиться этой цели, установив свойство командной строки, если использую Java 23 или более позднюю версию:
Код: Выделить всё
-Djavax.net.ssl.trustStoreType=KeychainStore-ROOT
Однако на самом деле необходимо доверять сертификатам из обеих цепочек ключей, чтобы программное обеспечение могло при необходимости устанавливать соединения как с внутренними серверами компании, так и с внешними интернет-серверами. Кажется, не существует очевидного способа добиться этого без настройки TrustManager в коде. Я хотел бы иметь возможность справиться с этим в конфигурации среды выполнения Java, чтобы я мог запускать уже существующее программное обеспечение. Является ли это упущением в положении Apple KeychainStore? Или я не могу найти механизм, позволяющий обеспечить доверие обоим магазинам?
Используя эту версию Java:
Код: Выделить всё
/Library/Java/JavaVirtualMachines/zulu-25.jdk/Contents/Home/bin/java --version
openjdk 25.0.1 2025-10-21 LTS
OpenJDK Runtime Environment Zulu25.30+17-CA (build 25.0.1+8-LTS)
OpenJDK 64-Bit Server VM Zulu25.30+17-CA (build 25.0.1+8-LTS, mixed mode, sharing)
В MacOS версии 15.6.1 (24G90)
Подробнее здесь:
https://stackoverflow.com/questions/798 ... -both-admi