У меня есть 3 сертификата - Корневой CA [A], Промежуточный CA [B] и некоторые сертификаты, подписанные B [C]. Я хотел бы проверить C в Java. У меня CRL и OCSP отключены в тот момент. Java использует реализацию PKIXCertPathValidator для проверки под капотом.
Я попробовал два подхода:
- Передайте B и C в CertPath и A в качестве доверенного якоря.
- Передайте C в CertPath, A в качестве доверенного якоря и B в качестве CertStore.
Ни один из подходов не работает. Проблема заключается в том, что валидатор получает элемент с индексом 0 из формы CertPath и затем ищет для него доверенную привязку. C подписан B, который не является доверенным якорем, поэтому он терпит неудачу.
Я бы хотел, чтобы это работало так:
- Укажите сертификат, который вы хотите проверить.
- Укажите доверенную привязку.
- Предоставить набор сертификатов, которые МОГУТ быть Промежуточным CA.
- Подтвердить сертификат.