Java + X509: как отозвать сертификаты?

Выполняя отладку в механизме проверки сертификатов X509 Java, мне просто интересно, как отзываются сертификаты? Из RFC 4158 (и документации, связанной с PKI) я узнал, что каждый ЦС (или Сторона, предоставляющая якоря доверия) может выдавать CRL (список отзыва сертификатов).

Загружает ли Java CRL самостоятельно или просто будет предоставлять обновленную информацию с каждой (второстепенной) версией, которую я обновляю?

Какие варианты существуют для пользовательской инфраструктуры (рекомендуется ли предоставлять один раз собственный (глобальный) TrustManager?)


person Martin Kersten    schedule 07.06.2016    source источник


Ответы (1)


Выполняя отладку в механизме проверки сертификатов X509 Java, мне просто интересно, как отзываются сертификаты? Из RFC 4158 (и документации, связанной с PKI) я узнал, что каждый ЦС (или Сторона, предоставляющая якоря доверия) может выдавать CRL (список отзыва сертификатов).

Сертификаты включают в себя часть информации о том, как проверить отзыв, обычно это CRL (список отзыва сертификатов) или онлайн-сервис OCSP (протокол статуса онлайн-сертификата).

Поставщик услуг сертификации (ЦС) отзывает сертификат, включая его в список отзыва сертификатов и свою службу OCSP. Когда клиент хочет проверить отзыв сертификата, загрузите CRL для проверки или выполните запрос OCSP.

Загружает ли Java CRL самостоятельно или просто будет предоставлять обновленную информацию с каждой (второстепенной) версией, которую я обновляю?

Нет, Java позволяет проверить отзыв сертификата, но не

Какие варианты существуют для пользовательской инфраструктуры (рекомендуется ли предоставлять один раз собственный (глобальный) TrustManager?)

Java имеет собственную структуру для создания хранилища доверенных сертификатов с использованием файлов хранилища ключей (формат JKS или PKCS12). По умолчанию это jre/lib/security/cacerts. Хранилище доверия будет проверено, например, в https-соединениях.

Хорошей практикой является использование инструментов, предоставляемых системой, если вам не нужно улучшать функциональность. Объясните свой вариант использования, и я мог бы быть более конкретным

person pedrofb    schedule 08.06.2016
comment
Это был вопрос, поднятый во время отладки. По сути, проблема заключалась в том, что сторонний инструмент поставлялся со своими собственными jks, и у меня внезапно по-разному использовались три разных хранилища доверия. Мне просто интересно, догоняет ли Java отзыв, добавляя дополнительную информацию с каждым публикуемым обновлением. - person Martin Kersten; 08.06.2016
comment
Вероятно, инструмент использует собственное хранилище доверенных сертификатов, заменяющее cacerts JDK (обычно для добавления доверенных сертификатов). Нет никакого процесса Java, который проверяет отзыв этих доверенных хранилищ. В этом случае целесообразно объединиться в один центральный JKS. Особенно на ремонт. Но если инструмент часто выпускает обновления, у вас должна быть работа по унификации (например, с помощью скрипта). - person pedrofb; 08.06.2016
comment
Я намеренно перезаписываю хранилище доверенных сертификатов, забава заключалась в том, что у меня действительно было несколько хранилищ доверия. - person Martin Kersten; 08.06.2016
comment
Если вы не контролируете другой инструмент, у вас действительно не так уж много вариантов ... - person pedrofb; 09.06.2016