Использование Apache HttpClient 4.2.1. Использование кода, скопированного из примера входа на основе формы
http://hc.apache.org/httpcomponents-client-ga/examples.html
Я получаю исключение при доступе к защищенной паролем форме:
Getting library items from https://appserver.gtportalbase.com/agileBase/AppController.servlet?return=blank
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
Closing http connection
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:397)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
Сертификат, насколько я могу судить, в порядке (см. URL-адрес перед трассировкой стека), а не истек - браузеры не жалуются.
Я попытался импортировать сертификат в хранилище ключей a la
Как обрабатывать недопустимые SSL-сертификаты с помощью Apache HttpClient?
без изменений. Я считаю, что вы можете создать собственный SSLContext, чтобы заставить Java игнорировать ошибку, но я скорее исправлю основную причину, так как я не хочу открывать какие-либо дыры в безопасности.
Любые идеи?