javax.net.ssl.SSLKeyException:[安全:090477]从intranet.xxx.com收到的证书链 - 158.171.160.28不受信任导致SSL握手失败。
我正在尝试使用weblogic从一个Intranet网站获取内容为html页面。连接到网站时,我收到javax.net.ssl.SSLKeyException:[Security:090477]异常。如果使用相同的代码,我可以使用主类来实现所需的代码。请就此提出建议。
public class Test{
public static void main(String[] args) {
String[] lines = null;
try {
// configure the SSLContext with a TrustManager
SSLContext ctx = null;
try {
ctx = SSLContext.getInstance("TLS");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
ctx.init(new KeyManager[0], new TrustManager[] {new DefaultTrustManager()}, new SecureRandom());
} catch (KeyManagementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SSLContext.setDefault(ctx);
String url = "https://www.google.com"
Document doc = Jsoup.connect(url).get();
Elements elements = doc.getElementById("table_UniqueReportID").children();
for(Element element : elements)
{
System.out.println(element.nodeName());
if(element.nodeName().equalsIgnoreCase("tbody"))
{
Elements rowElements = element.children();
for(Element currentRow : rowElements)
{
System.out.println(currentRow.text());
}
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static class DefaultTrustManager implements X509TrustManager {
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
// TODO Auto-generated method stub
}
}
}
答案 0 :(得分:3)
您还需要将证书导入密钥库和签名者以及java cacerts。
确保证书通用名称与您的名称相同。
例如..如果您看到SBI网上银行证书,那么它的通用名称就像
CN = www.onlinesbi.com
我们必须将证书导入密钥库才能工作。