使用Apache HttpComponents HttpClient庫(4.0.2)時出現問題,證書無法正確驗證。該證書有效期爲域名(姑且稱之爲example.com),但是它得到驗證對IP地址而不是:Apache HttpClient將域名解析爲IP地址並且沒有匹配證書
主機名的證書不匹配:< 123.123.123.123> = < *! .example.com的>
我的用於使連接的代碼是:
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
String url = "https://www.example.com";
HttpGet get = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(get);
String response = EntityUtils.toString(httpResponse.getEntity()).trim();
通過web瀏覽器連接時,證書本身顯示爲有效和爲fo有效[R我連接到域名:
CN = * .example.com的
證書也被添加到Java密鑰(使用常規測試HttpsURLConnection
)。
此代碼使用IP地址而不是域名的任何想法?
因此,當涉及到SSL時,域無法解析爲IP。所以你不能使用IP證書來保護域名。很高興知道。謝謝! – Rolf