seanmonstar / reqwest

An easy and powerful Rust HTTP Client
https://docs.rs/reqwest
Apache License 2.0
9.46k stars 1.06k forks source link

kind: Other, error: Custom { kind: InvalidData, error: DecryptError } #867

Open x1957 opened 4 years ago

x1957 commented 4 years ago

I got an error

reqwest::Error { kind: Request, url: "https://**********, source: hyper::Error(Connect, Custom { kind: Other, error: Custom { kind: InvalidData, error: DecryptError } }) }

This happens when create connection got ServerHello ServerHelloPayload.

[2020-03-28T13:20:22Z DEBUG hyper::client::connect::dns] resolving host="************"
[2020-03-28T13:20:22Z DEBUG hyper::client::connect::http] connecting to 172.31.43.112:443
[2020-03-28T13:20:22Z DEBUG hyper::client::connect::http] connected to 172.31.43.112:443
[2020-03-28T13:20:22Z DEBUG rustls::client::hs] Resuming session
[2020-03-28T13:20:22Z TRACE rustls::client::hs] Sending ClientHello Message {
typ: Handshake,
version: TLSv1_0,
payload: Handshake(
HandshakeMessagePayload {
typ: ClientHello,
payload: ClientHello(
ClientHelloPayload {
client_version: TLSv1_2,
random: Random(
[
52,
224,
208,
116,
39,
18,
249,
195,
38,
122,
90,
239,
221,
111,
35,
29,
179,
166,
221,
63,
21,
2,
76,
39,
53,
9,
190,
109,
25,
96,
77,
116,
],
),
session_id: SessionID(
89,
104,
165,
44,
71,
70,
210,
25,
166,
81,
0,
83,
133,
213,
234,
21,
94,
54,
139,
155,
5,
206,
72,
41,
19,
183,
63,
52,
252,
176,
111,
58,
),
cipher_suites: [
TLS13_CHACHA20_POLY1305_SHA256,
TLS13_AES_256_GCM_SHA384,
TLS13_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_EMPTY_RENEGOTIATION_INFO_SCSV,
],
compression_methods: [
Null,
],
extensions: [
SupportedVersions(
[
TLSv1_3,
TLSv1_2,
],
),
ServerName(
[
ServerName {
typ: HostName,
payload: HostName(
DNSName(
"************",
),
),
},
],
),
ECPointFormats(
[
Uncompressed,
],
),
NamedGroups(
[
X25519,
secp384r1,
secp256r1,
],
),
SignatureAlgorithms(
[
ECDSA_NISTP384_SHA384,
ECDSA_NISTP256_SHA256,
RSA_PSS_SHA512,
RSA_PSS_SHA384,
RSA_PSS_SHA256,
RSA_PKCS1_SHA512,
RSA_PKCS1_SHA384,
RSA_PKCS1_SHA256,
],
),
ExtendedMasterSecretRequest,
CertificateStatusRequest(
OCSP(
OCSPCertificateStatusRequest {
responder_ids: [],
extensions: PayloadU16(
[],
),
},
),
),
KeyShare(
[
KeyShareEntry {
group: X25519,
payload: PayloadU16(
[
159,
141,
204,
21,
205,
135,
101,
135,
73,
129,
229,
95,
49,
213,
239,
182,
25,
98,
105,
115,
20,
129,
204,
139,
151,
235,
40,
21,
246,
139,
78,
52,
],
),
},
],
),
PresharedKeyModes(
[
PSK_DHE_KE,
],
),
Protocols(
[
PayloadU8(
[
104,
50,
],
),
PayloadU8(
[
104,
116,
116,
112,
47,
49,
46,
49,
],
),
],
),
SessionTicketOffer(
Payload(
[
83,
83,
75,
45,
69,
48,
48,
52,
52,
48,
51,
56,
49,
0,
0,
0,
50,
49,
171,
244,
43,
198,
167,
19,
155,
187,
135,
127,
66,
8,
205,
228,
35,
189,
64,
71,
52,
215,
113,
15,
200,
180,
147,
110,
110,
136,
90,
13,
253,
206,
79,
188,
48,
69,
66,
108,
82,
56,
190,
166,
46,
147,
69,
211,
52,
71,
221,
75,
248,
146,
105,
59,
141,
89,
144,
62,
122,
235,
211,
166,
85,
2,
93,
252,
32,
109,
138,
146,
164,
41,
10,
156,
59,
193,
76,
59,
116,
209,
15,
190,
57,
102,
47,
167,
],
),
),
],
},
),
},
),
}
[2020-03-28T13:20:22Z TRACE rustls::client::hs] We got ServerHello ServerHelloPayload {
legacy_version: TLSv1_2,
random: Random(
[
237,
163,
36,
173,
117,
35,
48,
220,
104,
109,
255,
183,
195,
184,
121,
144,
236,
132,
41,
247,
151,
187,
28,
90,
164,
177,
247,
104,
222,
150,
77,
61,
],
),
session_id: SessionID(
89,
104,
165,
44,
71,
70,
210,
25,
166,
81,
0,
83,
133,
213,
234,
21,
94,
54,
139,
155,
5,
206,
72,
41,
19,
183,
63,
52,
252,
176,
111,
58,
),
cipher_suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
compression_method: Null,
extensions: [
ECPointFormats(
[
Uncompressed,
],
),
RenegotiationInfo(
PayloadU8(
[],
),
),
],
}
[2020-03-28T13:20:22Z DEBUG rustls::client::hs] ALPN protocol is None
[2020-03-28T13:20:22Z DEBUG rustls::client::hs] Using ciphersuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
[2020-03-28T13:20:22Z DEBUG rustls::client::hs] Server agreed to resume
[2020-03-28T13:20:22Z TRACE hyper::client::pool] checkout dropped for ("https", ************)
[2020-03-28T13:20:22Z ERROR order]  reqwest::Error { kind: Request, url: "https://************", source: hyper::Error(Connect, Custom { kind: Other, error: Custom { kind: InvalidData, error: DecryptError } }) }

This error occasionally appears in some requests, not in every request.

x1957 commented 4 years ago

change rustls to native tls got error:

 reqwest::Error { kind: Request, url: "***********", source: hyper::Error(Connect, Ssl(Error { code: ErrorCode(1), cause: Some(Ssl(ErrorStack([Error { code: 336134278, library: "SSL routines", function: "ssl3_get_server_certificate", reason: "certificate verify failed", file: "s3_clnt.c", line: 1264 }]))) }, X509VerifyResult { code: 62, error: "Hostname mismatch" })) }

Is there something wrong with certificate? Using curl is ok.

*   Trying 172.31.43.112...
* TCP_NODELAY set
* Connected to ***** (172.31.43.112) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: OU=Domain Control Validated; CN=*****
*  start date: Dec 15 11:19:00 2017 GMT
*  expire date: Dec 15 11:19:00 2020 GMT
*  subjectAltName: host "**********" matched cert's "*****"
*  issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2
*  SSL certificate verify ok.
> GET ********
> Host: *****
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx/1.16.1
< Date: Sat, 28 Mar 2020 09:11:51 GMT
< Content-Length: 403
< Connection: keep-alive
< Content-Type: application/json
<
Darkspirit commented 4 years ago

Hm. Open Google Chrome > Developer Tools > Security, load the URL and check if you see any warnings under Overview or Main origin.

x1957 commented 4 years ago

Hm. Open Google Chrome > Developer Tools > Security, load the URL and check if you see any warnings under Overview or Main origin.

No warnings and errors!

image

Darkspirit commented 4 years ago

Is the domain you are connecting to present in subjectAltName of the certificate? Do you use Rustls with a custom CA root store? Would it work by using the default config (webpki_roots)?

x1957 commented 4 years ago

Is the domain you are connecting to present in subjectAltName of the certificate? Do you use Rustls with a custom CA root store? Would it work by using the default config (webpki_roots)?

use rustls there is no cert error, sometimes got

reqwest::Error { kind: Request, url: "https://**********, source: hyper::Error(Connect, Custom { kind: Other, error: Custom { kind: InvalidData, error: DecryptError } }) }

when change to native tls got hostname mismatch

the domain I'm connectiong to is in SAN wildcard.

x1957 commented 4 years ago

I think we can ignore the hostname mismatch error from openssl, focus on error *"error sending request for url (https://****): error trying to connect: cannot decrypt peer's message"*.

Darkspirit commented 4 years ago

What software is the server running? On which OS have you tried native-tls? What does https://github.com/drwetter/testssl.sh say?

$ git clone https://github.com/drwetter/testssl.sh.git
$ cd testssl.sh
$ ./testssl.sh https://yourdomain.tld
x1957 commented 4 years ago

os: Linux version 4.14.146-120.181.amzn2.x86_64 (mockbuild@ip-10-0-1-243) (gcc version 7.3.1 20180712 (Red Hat 7.3.1-6) (GCC)) #1 SMP Fri Oct 18 17:01:06 UTC 2019

openssl: OpenSSL 1.0.2k-fips 26 Jan 2017

testssl.sh:

###########################################################
    testssl.sh       3.1dev from https://testssl.sh/dev/
    (8ff4520 2020-03-25 18:28:03 -- )

      This program is free software. Distribution and
             modification under GPLv2 permitted.
      USAGE w/o ANY WARRANTY. USE IT AT YOUR OWN RISK!

       Please file bugs @ https://testssl.sh/bugs/

###########################################################

 Using "OpenSSL 1.0.2-chacha (1.0.2k-dev)" [~183 ciphers]
 on ip-172-31-35-102:./bin/openssl.Linux.x86_64
 (built: "Jan 18 17:12:17 2019", platform: "linux-x86_64")

 Start 2020-03-29 09:46:47        -->> 172.31.43.112:443 (xxxxx.coinex.com) <<--

 rDNS (172.31.43.112):   ip-172-31-43-112.ap-northeast-1.compute.internal.
 Service detected:       HTTP

 Testing protocols via sockets except NPN+ALPN

 SSLv2      not offered (OK)
 SSLv3      not offered (OK)
 TLS 1      offered (deprecated)
 TLS 1.1    offered (deprecated)
 TLS 1.2    offered (OK)
 TLS 1.3    not offered and downgraded to a weaker protocol
 NPN/SPDY   not offered
 ALPN/HTTP2 not offered

 Testing cipher categories

 NULL ciphers (no encryption)                  not offered (OK)
 Anonymous NULL Ciphers (no authentication)    not offered (OK)
 Export ciphers (w/o ADH+NULL)                 not offered (OK)
 LOW: 64 Bit + DES, RC[2,4] (w/o export)       not offered (OK)
 Triple DES Ciphers / IDEA                     not offered
 Obsolete: SEED + 128+256 Bit CBC cipher       offered
 Strong encryption (AEAD ciphers)              offered (OK)

 Testing robust (perfect) forward secrecy, (P)FS -- omitting Null Authentication/Encryption, 3DES, RC4

 PFS is offered (OK)          ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA
 Elliptic curves offered:     prime256v1 secp384r1

 Testing server preferences

 Has server cipher order?     yes (OK)
 Negotiated protocol          TLSv1.2
 Negotiated cipher            ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Cipher order
    TLSv1:     ECDHE-RSA-AES128-SHA ECDHE-RSA-AES256-SHA AES128-SHA AES256-SHA
    TLSv1.1:   ECDHE-RSA-AES128-SHA ECDHE-RSA-AES256-SHA AES128-SHA AES256-SHA
    TLSv1.2:   ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA AES128-GCM-SHA256 AES128-SHA256 AES128-SHA
               AES256-GCM-SHA384 AES256-SHA256 AES256-SHA

 Testing server defaults (Server Hello)

 TLS extensions (standard)    "server name/#0" "EC point formats/#11" "renegotiation info/#65281" "session ticket/#35"
 Session Ticket RFC 5077 hint 172800 seconds but: PFS requires session ticket keys to be rotated < daily !
 SSL Session ID support       yes
 Session Resumption           Tickets: yes, ID: no
 TLS clock skew               Random values, no fingerprinting possible
 Signature Algorithm          SHA256 with RSA
 Server key size              RSA 2048 bits
 Server key usage             Digital Signature, Key Encipherment
 Server extended key usage    TLS Web Server Authentication, TLS Web Client Authentication
 Serial / Fingerprints        2CF01767DABD9D4A / SHA1 EE242699D48D7FCDB0780A96DABDD98AD5D856CE
                              SHA256 7BA79C0BBB5DB856156C480EFBFD60AFE919C007087B4F87FC120996E3324D76
 Common Name (CN)             *.coinex.com
 subjectAltName (SAN)         *.coinex.com coinex.com
 Issuer                       Go Daddy Secure Certificate Authority - G2 (GoDaddy.com, Inc. from US)
 Trust (hostname)             Ok via SAN wildcard (same w/o SNI)
 Chain of trust               Ok
 EV cert (experimental)       no
 ETS/"eTLS", visibility info  not present
 Certificate Validity (UTC)   261 >= 60 days (2017-12-15 19:19 --> 2020-12-15 19:19)
                              >= 825 days certificate life time but issued before 2018/03/01
 # of certificates provided   4
 Certificate Revocation List  http://crl.godaddy.com/gdig2s1-795.crl
 OCSP URI                     http://ocsp.godaddy.com/
 OCSP stapling                not offered
 OCSP must staple extension   --
 DNS CAA RR (experimental)    not offered
 Certificate Transparency     --

 Testing HTTP header response @ "/"

 HTTP Status Code             404 Not Found (Hint: supply a path which doesn't give a "404 Not Found")
 HTTP clock skew              0 sec from localtime
 Strict Transport Security    not offered
 Public Key Pinning           --
 Server banner                nginx/1.16.1
 Application banner           --
 Cookie(s)                    (none issued at "/") -- maybe better try target URL of 30x
 Security headers             --
 Reverse Proxy banner         --

 Testing vulnerabilities

 Heartbleed (CVE-2014-0160)                not vulnerable (OK), no heartbeat extension
 CCS (CVE-2014-0224)                       not vulnerable (OK)
 Ticketbleed (CVE-2016-9244), experiment.  not vulnerable (OK), no session tickets
 ROBOT
not vulnerable (OK)
 Secure Renegotiation (RFC 5746)           supported (OK)
 Secure Client-Initiated Renegotiation     likely not vulnerable (OK), timed out
 CRIME, TLS (CVE-2012-4929)                not vulnerable (OK)
 BREACH (CVE-2013-3587)                    potentially NOT ok, uses gzip HTTP compression. - only supplied "/" tested
                                           Can be ignored for static pages or if no secrets in the page
 POODLE, SSL (CVE-2014-3566)               not vulnerable (OK), no SSLv3 support
 TLS_FALLBACK_SCSV (RFC 7507)              Check failed, unexpected result , run testssl.sh -Z --debug=1 and look at /tmp/testssl.PtEa0L/*tls_fallback_scsv.txt
 SWEET32 (CVE-2016-2183, CVE-2016-6329)    not vulnerable (OK)
 FREAK (CVE-2015-0204)                     not vulnerable (OK)
 DROWN (CVE-2016-0800, CVE-2016-0703)      not vulnerable on this host and port (OK)
                                           make sure you don't use this certificate elsewhere with SSLv2 enabled services
                                           https://censys.io/ipv4?q=7BA79C0BBB5DB856156C480EFBFD60AFE919C007087B4F87FC120996E3324D76 could help you to find out
 LOGJAM (CVE-2015-4000), experimental      not vulnerable (OK): no DH EXPORT ciphers, no DH key detected with <= TLS 1.2
 BEAST (CVE-2011-3389)                     TLS1: ECDHE-RSA-AES128-SHA ECDHE-RSA-AES256-SHA AES128-SHA AES256-SHA
                                           VULNERABLE -- but also supports higher protocols  TLSv1.1 TLSv1.2 (likely mitigated)
 LUCKY13 (CVE-2013-0169), experimental     potentially VULNERABLE, uses cipher block chaining (CBC) ciphers with TLS. Check patches
 RC4 (CVE-2013-2566, CVE-2015-2808)        no RC4 ciphers detected (OK)

 Testing 370 ciphers via OpenSSL plus sockets against the server, ordered by encryption strength

Hexcode  Cipher Suite Name (OpenSSL)       KeyExch.   Encryption  Bits     Cipher Suite Name (IANA/RFC)
-----------------------------------------------------------------------------------------------------------------------------
 xc030   ECDHE-RSA-AES256-GCM-SHA384       ECDH 256   AESGCM      256      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
 xc028   ECDHE-RSA-AES256-SHA384           ECDH 256   AES         256      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
 xc014   ECDHE-RSA-AES256-SHA              ECDH 256   AES         256      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
 x9d     AES256-GCM-SHA384                 RSA        AESGCM      256      TLS_RSA_WITH_AES_256_GCM_SHA384
 x3d     AES256-SHA256                     RSA        AES         256      TLS_RSA_WITH_AES_256_CBC_SHA256
 x35     AES256-SHA                        RSA        AES         256      TLS_RSA_WITH_AES_256_CBC_SHA
 xc02f   ECDHE-RSA-AES128-GCM-SHA256       ECDH 256   AESGCM      128      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
 xc027   ECDHE-RSA-AES128-SHA256           ECDH 256   AES         128      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
 xc013   ECDHE-RSA-AES128-SHA              ECDH 256   AES         128      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
 x9c     AES128-GCM-SHA256                 RSA        AESGCM      128      TLS_RSA_WITH_AES_128_GCM_SHA256
 x3c     AES128-SHA256                     RSA        AES         128      TLS_RSA_WITH_AES_128_CBC_SHA256
 x2f     AES128-SHA                        RSA        AES         128      TLS_RSA_WITH_AES_128_CBC_SHA

 Running client simulations (HTTP) via sockets

 Android 4.4.2                TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Android 5.0.0                TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Android 6.0                  TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Android 7.0                  TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Android 8.1 (native)         TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Android 9.0 (native)         TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Android 10.0 (native)        TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 74 (Win 10)           TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 79 (Win 10)           TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 66 (Win 8.1/10)      TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 71 (Win 10)          TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 IE 6 XP                      No connection
 IE 8 Win 7                   TLSv1.0 ECDHE-RSA-AES128-SHA, 256 bit ECDH (P-256)
 IE 8 XP                      No connection
 IE 11 Win 7                  TLSv1.2 ECDHE-RSA-AES128-SHA256, 256 bit ECDH (P-256)
 IE 11 Win 8.1                TLSv1.2 ECDHE-RSA-AES128-SHA256, 256 bit ECDH (P-256)
 IE 11 Win Phone 8.1          TLSv1.2 ECDHE-RSA-AES128-SHA256, 256 bit ECDH (P-256)
 IE 11 Win 10                 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Edge 15 Win 10               TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Edge 17 (Win 10)             TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Opera 66 (Win 10)            TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Safari 9 iOS 9               TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Safari 9 OS X 10.11          TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Safari 10 OS X 10.12         TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Safari 12.1 (iOS 12.2)       TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Safari 13.0 (macOS 10.14.6)  TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Apple ATS 9 iOS 9            TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Java 6u45                    TLSv1.0 AES128-SHA, No FS
 Java 7u25                    TLSv1.0 ECDHE-RSA-AES128-SHA, 256 bit ECDH (P-256)
 Java 8u161                   TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Java 11.0.2 (OpenJDK)        TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Java 12.0.1 (OpenJDK)        TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 OpenSSL 1.0.2e               TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 OpenSSL 1.1.0l (Debian)      TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 OpenSSL 1.1.1d (Debian)      TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Thunderbird (68.3)           TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
x1957 commented 2 years ago

my reqwest client have the error

"error sending request for url (https://******): error trying to connect: cannot decrypt peer's message".

But when I restart the client process, it's ok, no error any more. There is no update on server side.

├── reqwest v0.11.8
│   ├── async-compression v0.3.8
│   │   ├── flate2 v1.0.22 (*)
│   │   ├── futures-core v0.3.17
│   │   ├── memchr v2.4.1
│   │   ├── pin-project-lite v0.2.7
│   │   └── tokio v1.12.0
│   │       ├── bytes v1.1.0
│   │       ├── libc v0.2.105
│   │       ├── memchr v2.4.1
│   │       ├── mio v0.7.14
│   │       │   ├── libc v0.2.105
│   │       │   └── log v0.4.14 (*)
│   │       ├── num_cpus v1.13.0
│   │       │   └── libc v0.2.105
│   │       ├── once_cell v1.8.0
│   │       ├── parking_lot v0.11.2
│   │       │   ├── instant v0.1.12
│   │       │   │   └── cfg-if v1.0.0
│   │       │   ├── lock_api v0.4.5
│   │       │   │   └── scopeguard v1.1.0
│   │       │   └── parking_lot_core v0.8.5
│   │       │       ├── cfg-if v1.0.0
│   │       │       ├── instant v0.1.12 (*)
│   │       │       ├── libc v0.2.105
│   │       │       └── smallvec v1.7.0
│   │       ├── pin-project-lite v0.2.7
│   │       ├── signal-hook-registry v1.4.0
│   │       │   └── libc v0.2.105
│   │       └── tokio-macros v1.5.0 (proc-macro)
│   │           ├── proc-macro2 v1.0.32 (*)
│   │           ├── quote v1.0.10 (*)
│   │           └── syn v1.0.81 (*)
│   │       [build-dependencies]
│   │       └── autocfg v1.0.1
│   ├── base64 v0.13.0
│   ├── bytes v1.1.0
│   ├── encoding_rs v0.8.29
│   │   └── cfg-if v1.0.0
│   ├── futures-core v0.3.17
│   ├── futures-util v0.3.17 (*)
│   ├── http v0.2.5
│   │   ├── bytes v1.1.0
│   │   ├── fnv v1.0.7
│   │   └── itoa v0.4.8
│   ├── http-body v0.4.4
│   │   ├── bytes v1.1.0
│   │   ├── http v0.2.5 (*)
│   │   └── pin-project-lite v0.2.7
│   ├── hyper v0.14.14
│   │   ├── bytes v1.1.0
│   │   ├── futures-channel v0.3.17 (*)
│   │   ├── futures-core v0.3.17
│   │   ├── futures-util v0.3.17 (*)
│   │   ├── h2 v0.3.7
│   │   │   ├── bytes v1.1.0
│   │   │   ├── fnv v1.0.7
│   │   │   ├── futures-core v0.3.17
│   │   │   ├── futures-sink v0.3.17
│   │   │   ├── futures-util v0.3.17 (*)
│   │   │   ├── http v0.2.5 (*)
│   │   │   ├── indexmap v1.7.0
│   │   │   │   └── hashbrown v0.11.2
│   │   │   │   [build-dependencies]
│   │   │   │   └── autocfg v1.0.1
│   │   │   ├── slab v0.4.5
│   │   │   ├── tokio v1.12.0 (*)
│   │   │   ├── tokio-util v0.6.8
│   │   │   │   ├── bytes v1.1.0
│   │   │   │   ├── futures-core v0.3.17
│   │   │   │   ├── futures-sink v0.3.17
│   │   │   │   ├── log v0.4.14 (*)
│   │   │   │   ├── pin-project-lite v0.2.7
│   │   │   │   └── tokio v1.12.0 (*)
│   │   │   └── tracing v0.1.29
│   │   │       ├── cfg-if v1.0.0
│   │   │       ├── pin-project-lite v0.2.7
│   │   │       └── tracing-core v0.1.21
│   │   │           └── lazy_static v1.4.0
│   │   ├── http v0.2.5 (*)
│   │   ├── http-body v0.4.4 (*)
│   │   ├── httparse v1.5.1
│   │   ├── httpdate v1.0.1
│   │   ├── itoa v0.4.8
│   │   ├── pin-project-lite v0.2.7
│   │   ├── socket2 v0.4.2
│   │   │   └── libc v0.2.105
│   │   ├── tokio v1.12.0 (*)
│   │   ├── tower-service v0.3.1
│   │   ├── tracing v0.1.29 (*)
│   │   └── want v0.3.0
│   │       ├── log v0.4.14 (*)
│   │       └── try-lock v0.2.3
│   ├── hyper-rustls v0.23.0
│   │   ├── http v0.2.5 (*)
│   │   ├── hyper v0.14.14 (*)
│   │   ├── rustls v0.20.2
│   │   │   ├── log v0.4.14 (*)
│   │   │   ├── ring v0.16.20
│   │   │   │   ├── libc v0.2.105
│   │   │   │   ├── once_cell v1.8.0
│   │   │   │   ├── spin v0.5.2
│   │   │   │   └── untrusted v0.7.1
│   │   │   │   [build-dependencies]
│   │   │   │   └── cc v1.0.71
│   │   │   ├── sct v0.7.0
│   │   │   │   ├── ring v0.16.20 (*)
│   │   │   │   └── untrusted v0.7.1
│   │   │   └── webpki v0.22.0
│   │   │       ├── ring v0.16.20 (*)
│   │   │       └── untrusted v0.7.1
│   │   ├── tokio v1.12.0 (*)
│   │   └── tokio-rustls v0.23.2
│   │       ├── rustls v0.20.2 (*)
│   │       ├── tokio v1.12.0 (*)
│   │       └── webpki v0.22.0 (*)
│   ├── hyper-tls v0.5.0
│   │   ├── bytes v1.1.0
│   │   ├── hyper v0.14.14 (*)
│   │   ├── native-tls v0.2.8 (*)
│   │   ├── tokio v1.12.0 (*)
│   │   └── tokio-native-tls v0.3.0
│   │       ├── native-tls v0.2.8 (*)
│   │       └── tokio v1.12.0 (*)
│   ├── ipnet v2.3.1
│   ├── lazy_static v1.4.0
│   ├── log v0.4.14 (*)
│   ├── mime v0.3.16
│   ├── native-tls v0.2.8 (*)
│   ├── percent-encoding v2.1.0
│   ├── pin-project-lite v0.2.7
│   ├── rustls v0.20.2 (*)
│   ├── rustls-pemfile v0.2.1
│   │   └── base64 v0.13.0
│   ├── serde v1.0.130
│   ├── serde_json v1.0.68
│   │   ├── itoa v0.4.8
│   │   ├── ryu v1.0.5
│   │   └── serde v1.0.130
│   ├── serde_urlencoded v0.7.0
│   │   ├── form_urlencoded v1.0.1 (*)
│   │   ├── itoa v0.4.8
│   │   ├── ryu v1.0.5
│   │   └── serde v1.0.130
│   ├── tokio v1.12.0 (*)
│   ├── tokio-native-tls v0.3.0 (*)
│   ├── tokio-rustls v0.23.2 (*)
│   ├── tokio-util v0.6.8 (*)
│   ├── url v2.2.2 (*)
│   └── webpki-roots v0.22.1
│       └── webpki v0.22.0 (*)
├── security-framework v0.3.4
│   ├── core-foundation v0.6.4
│   │   ├── core-foundation-sys v0.6.2
│   │   └── libc v0.2.105
│   ├── core-foundation-sys v0.6.2
│   ├── libc v0.2.105
│   └── security-framework-sys v0.3.3
│       └── core-foundation-sys v0.6.2