2011-01-05 5 views
2

を要求し、私はこのサイトは、適切な証明書を持っていない知っている1として、私は次の例外Javaはここ

java.security.cert.CertificateException: No name matching www.sandbox.freelancer.com found 

を取得しています私のコード

 URL url = new URL(requestUrl); 
     HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); 
     BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); 

です。しかし、どのように私はこのサイトにログインする必要があります。どんな提案も感謝します。ありがとう。

答えて

3

すべて-信頼トラストマネージャ

try { 
    SSLContext sc = SSLContext.getInstance("SSL"); 
    sc.init(null, trustAllCerts, new java.security.SecureRandom()); 
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
} catch (Exception e) { 
} 

をインストールし、証明書チェーンに

TrustManager[] trustAllCerts = new TrustManager[]{ 
    new X509TrustManager() { 
     public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
      return null; 
     } 
     public void checkClientTrusted(
      java.security.cert.X509Certificate[] certs, String authType) { 
     } 
     public void checkServerTrusted(
      java.security.cert.X509Certificate[] certs, String authType) { 
     } 
    } 
}; 

を検証しませんトラストマネージャを作成します。今、HTTPSのURL

try { 
    URL url = new URL("https://www.sandbox.freelancer.com"); 
    HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); 
    BufferedReader br = 
     new BufferedReader(new InputStreamReader(conn.getInputStream())); 

} catch (MalformedURLException e) { 
} 
+0

特定の証明書を信頼するだけのトラストマネージャを作成し、他のすべての証明書をデフォルトでチェックしてみませんか? –

+0

@ GregSはい、できたかもしれませんが、証明書が信頼できないルート証明機関のチェーンを持っている場合、問題を解決するとは思わないでしょう。 –

1

証明書を保存し(Firefoxで入手して)、証明書をキーストアに追加して、そのキーストアを使用するようにアプリケーションを構成することができます。

+0

にアクセス私が証明書を取得することができますFirefoxを使わずにWebから直接? – Barun

関連する問題