Установите корневой сертификат startcom в хранилище ключей Java

Я использую JDK 1.7.0_45 и пытаюсь получить папку "Входящие" IMAP, но получаю исключение

sun.security.validator.ValidatorException: сбой построения пути PKIX: sun.security.provider.certpath.SunCertPathBuilderException: не удалось найти допустимый путь сертификации к запрошенной цели

Итак, я понял, что сертификат необходимо добавить в cacerts хранилища доверенных сертификатов Java ($JAVA_HOME/jre7/libs/security) через keytool. Сертификат для моего IMAP-сервера был выпущен StartCom, поэтому я подумал, что мне нужно добавить их корневые сертификаты. Я выполнил эти инструкции и добавил сертификаты в глобальное хранилище доверенных сертификатов Java. Тем не менее, я все еще получаю то же исключение. Я также попытался создать свой собственный файл хранилища ключей (.pks), добавить сертификаты и запустить приложение с

-Djavax.net.ssl.keyStore=path/to/myown.jks

Это тоже не сработало. Насколько я понимаю, достаточно добавить сертификат корневого центра, выдавшего сертификат.

Что мне нужно сделать, чтобы Java приняла сертификат моего почтового ящика IMAP?

Побочный вопрос: когда я публикую Java-приложение, такое как почтовый клиент, которому могут потребоваться сертификаты, не содержащиеся в хранилище доверенных сертификатов Java по умолчанию, каков наименее пугающий способ позволить пользователю добавлять новые сертификаты?


person John D.    schedule 11.12.2013    source источник
comment
Не совсем то же самое, но что-то связанное исключение, которое у меня было ранее: посмотрите здесь: stackoverflow.com/questions/17295909/   -  person Shailesh Saxena    schedule 11.12.2013