2016-11-07 23 views
1

httpclient 4.5.2を使用してプロキシサーバーを呼び出しています。以下はHttpClient 4.5.2 - SSL証明書の問題

HttpHost proxy = new HttpHost(proxyHost, proxyPort, https); 
HttpHost target = new HttpHost(ip, 443, "https"); 
HttpPost httppost = new HttpPost(url); 
CloseableHttpResponse response = httpclient.execute(target, httppost); 

エラーが私が取得さ: -

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 
     at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:671) 
     at sun.security.ssl.InputRecord.read(InputRecord.java:504) 
     at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) 
     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) 
     at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) 
     at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) 
     at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394) 
     at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353) 
     at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141) 
     at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353) 
     at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:388) 
     at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) 
     at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) 
     at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) 
     at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) 
     at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) 
     at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:117) 

私は、このエラーは、証明書の問題に関連して知っているかもしれませんか?私はすでに証明書をトラストストアに追加しているからです。

+0

どれでもお手伝いできますか? – user1238353

答えて

1
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 

私は、このエラーは、証明書の問題に関連して知っているかもしれませんか?私はすでに証明書をトラストストアに追加しているからです。

これは証明書の問題ではありません。あなたがアクセスするサーバーは、適切なTLSハンドシェイクを行いません。

私は、httpclient 4.5.2を使用してプロキシサーバーを呼び出しています。

HTTPプロキシサーバー上のHTTPSは、プレーンテキストのHTTP CONNECT要求で始まり、次にトンネルが確立されます。このトンネルが確立された後でさえ、TLSハンドシェイクは元のターゲットサーバで行われます。

+0

申し訳ありませんが、私はあなたを得ることができませんでした。私はプロキシサーバー(https)にアクセスしています。そして、httpclientはサードパーティのURLターゲット(https)を実行して渡します。 – user1238353

+0

TLSで何ができますか? – user1238353

+0

あなたが編集した投稿にproxyという変数を宣言している間は、それを使用しません。私はそれが魔法のようにこのように適用されることを非常に疑う。 TLS(またはSSLまたはSSL/TLS)は、HTTPSをHTTPから外すプロトコルです。つまり、HTTPSはTLS接続内のHTTPです。 –