У меня есть корпоративный (т. е. малоизвестный) сертификат CA от компании, которая предоставляет нам веб-сервисы, которые можно вызывать из Java. Я добавил этот сертификат CA в хранилище доверенных сертификатов cacerts по умолчанию (
Код: Выделить всё
keytool -import -file cert.cer -alias myca -keystore jre/lib/security/cacertsЯ не знаю, как это объяснить. Я могу придумать следующие причины, но не знаю, какая из них верная:
- Я заметил, что когда я добавляю сертификат конечного сервера в хранилище доверенных сертификатов, соединение в порядке. Возможно, сертификаты по своей конструкции не работают так, как я ожидаю (т. е. все сертификаты, подписанные добавленным туда центром сертификации, считаются действительными), но вместо этого мне приходится добавлять все сертификаты конечного сервера в хранилище доверенных сертификатов, включая сертификат ЦС их издателя.
- Мне придется добавить сертификат ЦС каким-то другим способом - другой командой, в другой файл и т. д.
- Возможно, сертификат ЦС неправильный, и keytool отказывается считать его центром сертификации.
- Возможно, построение пути PKIX завершается неудачно по другой причине.
Подробности:
- Сертификат конечного сервера является групповым сертификатом
- Промежуточного сертификата нет, только корневой и конечный сертификат
Подробнее здесь: https://stackoverflow.com/questions/465 ... s-expected
Мобильная версия