получение исключения SSL-рукопожатия при создании Pdf из Html в java

В моем веб-приложении есть возможность создания pdf из html-страницы. При этом возникает следующее исключение. На этой html-странице мы получаем доступ к файлам css через https. Однако я могу успешно получить доступ к веб-приложению через https.

javax.net.ssl.SSLHandshakeException: 
           sun.security.validator.ValidatorException: PKIX path building failed: 
           sun.security.provider.certpath.SunCertPathBuilderException: 
           unable to find valid certification path to requested target

Caused by: sun.security.validator.ValidatorException: 
           PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
           unable to find valid certification path to requested target

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: 
           unable to find valid certification path to requested target

Пожалуйста, предоставьте свои ценные предложения. Спасибо!!


person Infotechie    schedule 03.09.2012    source источник
comment
Пожалуйста, опубликуйте дополнительную информацию о сертификате и полной трассировке стека.   -  person user1516873    schedule 03.09.2012
comment
Возможный дубликат: stackoverflow .com/questions/2290570/   -  person Duncan Jones    schedule 03.09.2012


Ответы (1)


Ваш браузер использует хранилище сертификатов и проверяет, доступен ли публичный сертификат посещаемого вами сайта. Если это так, у вас не будет проблем с посещением сайта.

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

person Bruno Lowagie    schedule 03.09.2012
comment
Спасибо, Бруно, что поделился такой хорошей ссылкой. Мое веб-приложение развернуто на компьютере с Linux. У вас есть идеи, как добавить сертификат в хранилище ключей jre? - person Infotechie; 05.09.2012
comment
На самом деле не имеет значения, работаете ли вы в Linux или Windows. Вам нужно приложение keytool, которое поставляется с JDK. Если вы не можете установить его на сервер, просто скопируйте файл cacerts, добавьте сертификат на любую машину и замените существующий файл cacerts обновленным. - person Bruno Lowagie; 06.09.2012
comment
Да, ты прав. Наконец, мне удалось создать и установить самозаверяющий сертификат, но я все еще не могу добавить StandardAltNames в [req_extensions]. Есть ли у вас какие-либо идеи? Я действительно видел один из вопросов, связанных с той же темой, на который вы ответили, но он не работает для меня. - person Infotechie; 10.09.2012