Получение javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException. Не удается подключиться к приложению по HTTPS? - PullRequest
1 голос
/ 05 марта 2012

привет, я использую Tomcat 6 в качестве веб-сервера.у меня есть два веб-приложения, установленные на Tomcat на тот же порт.Скажите App1 и App2.App1 подключается к App2.Затем App2 снова подключается к App1 с помощью jessionid (поэтому URL, который отправляет app2, равен http://localhost/App1;jessionid=sessionidOfAp11). Он прекрасно работает, пока я нахожусь на http. Но как только я перехожу на https, App2 не может подключиться к App1с тем же URL-адресом. Еще один интересный факт: если я набираю тот же URL-адрес в браузере, он подключается к App1. Я не понимаю, в чем здесь заключается тайна?

Редактировать: - вотТочную ошибку я получаю

 Caused by: sun.security.validator.ValidatorException: PKIX path building failed:     sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid  certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
... 53 more
 Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)

Ответ

Ребята, спасибо за ответ. Вдоль ramesh ответа я также должен был сделать материал, предложенный в http://www.coderanch.com/t/134384/Security/Getting-error-No-subject-alternative.

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Поскольку App1 подключается к App2 с помощью https. Сертификат App2 должен находиться в хранилище доверенных сертификатов виртуальной машины, в которой запускается App1 .

См. здесь , чтобы узнать, как добавить сертификат в хранилище ключей.

Вы можете установить хранилище доверенных сертификатов, используя эти системные свойства

    -Djavax.net.ssl.trustStore="C:/test/truststore"  
    -Djavax.net.ssl.trustStorePassword="test".

Более того, вам не нужно общаться через https, когда клиент и сервер находятся на

  • То же VM
  • Та же машина
  • Частная сеть
0 голосов
/ 05 марта 2012

Похоже, вам нужно удалить нативную библиотеку tomcat из папки {tomcat_home} / bin (tcnative-1.dll под windows, может быть tcnative-1.so под * nix). Tomcat использует APR, если нативная библиотека находится в пути к классам. Подробнее о настройке SSL здесь

...