Используя HttpClient 4.1.0, мы пытаемся подключиться к удаленному серверу, который обычно подключается к форме.Кстати, это будет для производственного использования, но я бы не назвал конфиденциальную информацию, которую мы отправляем.Я не уверен, будут ли они настаивать на подключении https в любом случае.
Когда мы пытаемся вызвать httpClient.execute (httpPost), он выдает SSLPeerUnverifiedException
Мы создаем DefaultHttpClient, используяThreadSafeClientConnManager и проверили, что реестр https связан с SSLSocketFactory.
Мы подключаемся к URL-адресу следующим образом: https://some.thingchangedtoprotectthem.com/servlet/servlet.Something
Почему браузер работает как чудо, ноиспользование процесса на стороне сервера взрывается с этим исключением?Это потому, что браузер поставляется с сертификатами Verisign, а HttpClient - нет?
System.out and Stack trace below:
schemeSocketFactory = org.apache.http.conn.ssl.SSLSocketFactory
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:345)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:390)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:562)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)