如何在java中处理握手失败

zwghvu4y  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(235)

我有一个网站的问题。我的案例:我必须使用post方法向站点发送请求,但它引发异常:

I/O error on POST request for "https://xxx": Received fatal alert: handshake_failure

有没有可能不经许可就处理?
我已尝试通过以下方式禁用trustmanager:

private void disableSSL() throws NoSuchAlgorithmException, KeyManagementException {
        TrustManager[] trustManager = new TrustManager[]{
                new X509TrustManager() {
                    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                        return null;
                    }

                    public void checkClientTrusted(X509Certificate[] certs, String authType) {
                    }

                    public void checkServerTrusted(X509Certificate[] certs, String authType) {
                    }
                }
        };
        final SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustManager, null);
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    }

但这没有帮助。

10:08:34,405 INFO  [stdout] (default task-6) trigger seeding of SecureRandom
10:08:34,408 INFO  [stdout] (default task-6) done seeding SecureRandom
10:08:39,102 INFO  [stdout] (default task-6) Allow unsafe renegotiation: false
10:08:39,104 INFO  [stdout] (default task-6) Allow legacy hello messages: true
10:08:39,106 INFO  [stdout] (default task-6) Is initial handshake: true
10:08:39,107 INFO  [stdout] (default task-6) Is secure renegotiation: false
10:08:39,112 INFO  [stdout] (default task-6) default task-6, setSoTimeout(60000) called
10:08:39,112 INFO  [stdout] (default task-6) default task-6, the previous server name in SNI (type=host_name (0), value=xxx) was replaced with (type=host_name (0), value=xxx)
10:08:39,121 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1
10:08:39,125 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1
10:08:39,126 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 for TLSv1
10:08:39,126 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1
10:08:39,126 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 for TLSv1
10:08:39,137 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1
10:08:39,140 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 for TLSv1
10:08:39,142 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
10:08:39,142 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
10:08:39,151 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
10:08:39,153 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
10:08:39,157 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
10:08:39,158 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
10:08:39,158 INFO  [stdout] (default task-6) Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 for TLSv1.1
10:08:39,187 INFO  [stdout] (default task-6) %% No cached client session
10:08:39,192 INFO  [stdout] (default task-6)***ClientHello, TLSv1.2
10:08:39,322 INFO  [stdout] (default task-6) RandomCookie:  GMT: 1610530567 bytes = { 159, 16, 224, 148, 174, 109, 10, 138, 121, 232, 250, 113, 170, 208, 75, 92, 107, 214, 49, 28, 201, 243, 230, 244, 202, 241, 179, 88 }
10:08:39,325 INFO  [stdout] (default task-6) Session ID:  {}
10:08:39,325 INFO  [stdout] (default task-6) Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
10:08:39,340 INFO  [stdout] (default task-6) Compression Methods:  { 0 }
10:08:39,341 INFO  [stdout] (default task-6) Extension elliptic_curves, curve names: {secp256r1, secp384r1, secp521r1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, secp256k1}
10:08:39,341 INFO  [stdout] (default task-6) Extension ec_point_formats, formats: [uncompressed]
10:08:39,349 INFO  [stdout] (default task-6) Extension signature_algorithms, signature_algorithms: SHA512withECDSA, SHA512withRSA, SHA384withECDSA, SHA384withRSA, SHA256withECDSA, SHA256withRSA, SHA256withDSA, SHA1withECDSA, SHA1withRSA, SHA1withDSA
10:08:39,351 INFO  [stdout] (default task-6) Extension server_name, server_name: [type=host_name (0), value=staging.crossborder.omniship.eu]
10:08:39,355 INFO  [stdout] (default task-6)***
10:08:39,355 INFO  [stdout] (default task-6) default task-6, WRITE: TLSv1.2 Handshake, length = 201
10:08:39,403 INFO  [stdout] (default task-6) default task-6, READ: TLSv1.2 Alert, length = 2
10:08:39,423 INFO  [stdout] (default task-6) default task-6, RECV TLSv1.2 ALERT:  fatal, handshake_failure
10:08:39,425 INFO  [stdout] (default task-6) default task-6, called closeSocket()
10:08:39,429 INFO  [stdout] (default task-6) default task-6, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

我无法重新启动jvm。我只需要处理这个请求。
问题发生在Java1.8_0_151上。在Java1.8_0_181上,一切正常。
有什么想法吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题