首页 > 解决方案 > OkHttp SSLHandshakeException - PUT 失败

问题描述

我正在使用 OkHttp 发送 PUT 请求。由于 SSLHandshakeException,其中大约 50% 失败了。对不同主机的所有其余请求(GET、POST)都可以正常工作。使用 Android API 22 和 OkHttp 3.11。

03-04 06:09:35.773  3190 16628 E Terminal: --> PUT https://android-terminal-logs.s3.amazonaws.com/prod/99090/2020-03-04-11-10-21.zip?AWSAccessKeyId=ASIAW37CFKKSPHXIL7WU&Signature=SI4jNBsw9sAMe8f5xADvEHfaziY%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEIL%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIQDStHynWTBYmza0C5kTAQX%2FxDWzM3rdnJHgbinoIJ7EGwIgBJzzs%2FiXnmDYaveQ5ZYyXIakkUtxUWKfZqb9eAG4%2B08q9QMIWhAAGgw0NzIzODM4MzY4MzYiDKaWilBHn6Uu%2F06JoyrSA5n91yrEPwcxGAjOgRrlQoXDwAWiv9HQUFelTP9ATWMRnSxqo%2F7A6zZH8vd74MfRpETv79a3KCSV1acb9Bao2bRprvuauD%2BzF09dnYWllwx2hjJyfoJiN5g9KObOFva9jQm7H3xokRYo6eQzU%2FrfRLU6fC8IkM%2F7lN0xXP1%2FVbDR4njsEhbEYuet7fDEGZ71d3N7Cw5oa%2F44WidhonsA6WLZDkPPztn4DFrDyf%2FRbB%2Fu6ied0pRdZUgrJ2NsfnZstb28w6rEg9QHOsPWAEJnzQtLW7%2Bq8ICSHBYjT9CiZomeh3mDpYZ0eoxR61nuIoYT21A9jnLyDART0x4w0%2Bdkm4%2FGxClTCZXR3%2F5RhMkqlk2Nvw28C4HfINfxxUrMe477WSiYd8OX%2F0oQa1euhQAusOTY%2FiID28geOF7pnogzHvDkRCS3iCD0%2F%2FG%2BcyrPu9wqIQPYNqNbzueb5OIQJ5sFZaN7MqsnotxVuk7Ru2ylwDIXlzHWdyPDbHB9YKq2vN5FAsSf9LVdVX3qRi3KrX9kzSPJzakyO%2BZ2zp1ozVAQEHh%2B5lbUt7ll6NDbEg3%2F2CiQbAMR5hmfbw9QXwv5Wyt2LWy2zmvXSBVY8infOXKsQTDO%2BgIwteP98gU67wGS6nv2rSP86u4O9ANHdyrSBZ62qpZBxACti%2F08i2vaey6KIOZ%2BretXDxpcYJsApQBVvBbrkCl7FPw1ocKpOLKmjGmV96UGW1nh8nJXILLuK3Vt7SzB%2FnJtogwYym%2FSws26pppz%2BgXjktI8LVajgt4QWhz2ozxVRGnnjGxf5g71Sy4v1U2liUaBoDQFZBCOZ0aaVPHKRWMyIN%2Bh%2B1sGZXYXC1U4rUBbfbDgS74EBvYugrAEL%2BIrbsGkJngDK9kGUI7E5%2BLkwr75ab8TvurSoqNu9rxKM8wKAunOJ95vNm9xgtZVXA7k0kqod1bOkGXVHA%3D%3D&Expires=1583323821 (288958-byte body)
03-04 06:09:35.872  3190 16628 E NativeCrypto: ssl=0xcd7f7600 cert_verify_callback x509_store_ctx=0xc3afacd0 arg=0x0
03-04 06:09:35.873  3190 16628 E NativeCrypto: ssl=0xcd7f7600 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
03-04 06:09:35.876  3190 16628 E Terminal: <-- HTTP FAILED: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
03-04 06:09:35.876  3190 16628 E Terminal: onFailure: Request{method=PUT, url=https://android-terminal-logs.s3.amazonaws.com/prod/99090/2020-03-04-11-10-21.zip?AWSAccessKeyId=ASIAW37CFKKSPHXIL7WU&Signature=SI4jNBsw9sAMe8f5xADvEHfaziY%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEIL%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIQDStHynWTBYmza0C5kTAQX%2FxDWzM3rdnJHgbinoIJ7EGwIgBJzzs%2FiXnmDYaveQ5ZYyXIakkUtxUWKfZqb9eAG4%2B08q9QMIWhAAGgw0NzIzODM4MzY4MzYiDKaWilBHn6Uu%2F06JoyrSA5n91yrEPwcxGAjOgRrlQoXDwAWiv9HQUFelTP9ATWMRnSxqo%2F7A6zZH8vd74MfRpETv79a3KCSV1acb9Bao2bRprvuauD%2BzF09dnYWllwx2hjJyfoJiN5g9KObOFva9jQm7H3xokRYo6eQzU%2FrfRLU6fC8IkM%2F7lN0xXP1%2FVbDR4njsEhbEYuet7fDEGZ71d3N7Cw5oa%2F44WidhonsA6WLZDkPPztn4DFrDyf%2FRbB%2Fu6ied0pRdZUgrJ2NsfnZstb28w6rEg9QHOsPWAEJnzQtLW7%2Bq8ICSHBYjT9CiZomeh3mDpYZ0eoxR61nuIoYT21A9jnLyDART0x4w0%2Bdkm4%2FGxClTCZXR3%2F5RhMkqlk2Nvw28C4HfINfxxUrMe477WSiYd8OX%2F0oQa1euhQAusOTY%2FiID28geOF7pnogzHvDkRCS3iCD0%2F%2FG%2BcyrPu9wqIQPYNqNbzueb5OIQJ5sFZaN7MqsnotxVuk7Ru2ylwDIXlzHWdyPDbHB9YKq2vN5FAsSf9LVdVX3qRi3KrX9kzSPJzakyO%2BZ2zp1ozVAQEHh%2B5lbUt7ll6NDbEg3%2F2CiQbAMR5hmfbw9QXwv5Wyt2LWy2zmvXSBVY8infOXKsQTDO%2BgIwteP98gU67wGS6nv2rSP86u4O9ANHdyrSBZ62qpZBxACti%2F08i2vaey6KIOZ%2BretXDxpcYJsApQBVvBbrkCl7FPw1ocKpOLKmjGmV96UGW1nh8nJXILLuK3Vt7SzB%2FnJtogwYym%2FSws26pppz%2BgXjktI8LVajgt4QWhz2ozxVRGnnjGxf5g71Sy4v1U2liUaBoDQFZBCOZ0aaVPHKRWMyIN%2Bh%2B1sGZXYXC1U4rUBbfbDgS74EBvYugrAEL%2BIrbsGkJngDK9kGUI7E5%2BLkwr75ab8TvurSoqNu9rxKM8wKAunOJ95vNm9xgtZVXA7k0kqod1bOkGXVHA%3D%3D&Expires=1583323821, tags={}}

此外,每 5 分钟cert_verify_callbacklogcat 就会出现一次错误

03-04 05:56:12.182  3190  3215 E NativeCrypto: ssl=0xc063f200 cert_verify_callback x509_store_ctx=0xe2b6d3b0 arg=0x0
03-04 05:56:12.182  3190  3215 E NativeCrypto: ssl=0xc063f200 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
03-04 05:57:07.662  3190  3259 E Terminal: Listening to the card
03-04 05:58:11.700  3190  3259 E Terminal: Listening to the card
03-04 05:59:15.810  3190  3259 E Terminal: Listening to the card
03-04 06:00:19.977  3190  3259 E Terminal: Listening to the card
03-04 06:01:12.390  3190  3215 E NativeCrypto: ssl=0xc063f200 cert_verify_callback x509_store_ctx=0xe2b6d3b0 arg=0x0
03-04 06:01:12.390  3190  3215 E NativeCrypto: ssl=0xc063f200 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
03-04 06:01:24.089  3190  3259 E Terminal: Listening to the card
03-04 06:02:28.166  3190  3259 E Terminal: Listening to the card
03-04 06:03:32.244  3190  3259 E Terminal: Listening to the card
03-04 06:04:36.347  3190  3259 E Terminal: Listening to the card
03-04 06:05:40.431  3190  3259 E Terminal: Listening to the card
03-04 06:06:12.606  3190  3215 E NativeCrypto: ssl=0xc063f200 cert_verify_callback x509_store_ctx=0xe2b6d3b0 arg=0x0
03-04 06:06:12.607  3190  3215 E NativeCrypto: ssl=0xc063f200 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA

这是什么意思?

标签: androidssl-certificatex509certificateokhttpsslhandshakeexception

解决方案


推荐阅读