2011-10-26 138 views
4

使用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地址而不是域名的任何想法?

+0

因此,當涉及到SSL時,域無法解析爲IP。所以你不能使用IP證書來保護域名。很高興知道。謝謝! – Rolf

回答