这是我的代码
URL url = new URL(requestUrl);
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
我遇到了异常
java.security.cert.CertificateException: No name matching www.sandbox.freelancer.com found
据我所知,这个网站没有适当的证书。但是我必须登录这个网站。任何建议将不胜感激。感谢。
答案 0 :(得分:3)
创建不验证证书链的信任管理器
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) {
}
}
};
安装所有信任的信任管理器
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
}
现在访问https网址
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) {
}
答案 1 :(得分:1)
您可以保存证书(在Firefox中获取),然后将证书添加到密钥库,然后将您的应用配置为使用该密钥库。