javax.net.ssl.SSLKeyException:[安全性:090477]从intranet.xxx.com收到证书链

javax.net.ssl.SSLKeyException:[安全性:090477]从intranet.xxx.com收到证书链,java,ssl,https,weblogic,keystore,Java,Ssl,Https,Weblogic,Keystore,javax.net.ssl.sslkeyeException:[安全性:090477]从intranet.xxx.com收到的证书链-158.171.160.28不受信任,导致ssl握手失败 我正在尝试使用weblogic从一个intranet网站获取html页面的内容。连接到该网站时,我收到javax.net.ssl.SSLKeyException:[安全性:090477]异常。其中,使用相同的代码,我能够使用一个主类实现所需的功能。请对此提出建议 public class Test{

javax.net.ssl.sslkeyeException:[安全性:090477]从intranet.xxx.com收到的证书链-158.171.160.28不受信任,导致ssl握手失败

我正在尝试使用weblogic从一个intranet网站获取html页面的内容。连接到该网站时,我收到javax.net.ssl.SSLKeyException:[安全性: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

        }
    }
}

您还需要将证书导入keystore,并将签名者导入javacacerts

并确保证书公用名与您的服务器名相同

例如,如果您看到SBI网上银行证书,那么它的通用名称如下

CN=www.onlinesbi.com

我们必须将证书导入密钥库才能工作