Получите код Java для запуска поиска CTL в Windows или миграции CTL в доверенные корневые центры сертификации.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получите код Java для запуска поиска CTL в Windows или миграции CTL в доверенные корневые центры сертификации.

Сообщение Anonymous »

У меня есть приложение Java, которое вызывает System.setProperty("javax.net.ssl.trustStoreType", "WINDOWS-ROOT");, что заставляет JRE в конечном итоге вызвать Windows CertOpenSystemStore метод, затем перечислите и загрузите сертификаты из хранилища сертификатов доверенных корневых центров сертификации, поддерживаемых HKLM, чтобы использовать их для внутренней проверки.
Это здорово и все такое, за исключением случаев, когда мы имеем дело с очень чистым / недавно установленный компьютер с Windows, где доверенные корневые центры сертификации содержат только ~16 записей. Я только недавно узнал о функции списка доверенных сертификатов Windows (CTL) — скрытом механизме, который прозрачно сверяет цепочки сертификатов со списком доверенных корней, который Windows загружает из Центра обновления Windows (или где-то еще, если он переопределен, например, объектом групповой политики). Это позволяет веб-браузерам без проблем работать с более чем несколькими сайтами, а двоичные файлы с цифровой подписью выполняться без предупреждений. Определенные операции, такие как посещение сайта в Internet Explorer (но не Edge), дополнительно приводят к переносу центра сертификации из CTL в хранилище доверенных корневых центров сертификации.
Однако я предполагаю, что Механизм CTL не запускается в рабочем процессе Java, поскольку Java не запрашивает Windows проверку цепочки сертификатов TLS — он просто проверяет цепочку на соответствие сертификатам, перечисленным из доверенных корневых центров сертификации (

Код: Выделить всё

CertOpenSystemStore). Конечным результатом является sun.security.validator.ValidatorException: не удалось построить путь PKIX: : sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели
после вызова HttpURLConnection::getOutputStream(). write(postDataBytes);.
Кто-нибудь знает способ запустить механизм миграции Windows с CTL на доверенные корневые центры сертификации? Очевидно, что если бы существовал собственный Java-способ сделать это, это было бы идеально, но даже если кто-то знает, какие API-интерфейсы Windows C вызывают это, поэтому я мог бы написать немного JNI, это было бы лучше, чем альтернатива сообщению пользователям посетить сайт в Internet Explorer, чтобы убедиться, что его корневой центр сертификации пользуется доверием приложения Java.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -migration
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»