我尝试使用Android DownloadManager下载一些远程文件,看起来在Lollipop 5.0上运行应用程序时会出现一些HTTPS证书问题。适用于更高版本,我可以使用OkHttp手动下载相同的文件。
Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xaaf60a00: Failure in SSL library, usually a protocol error
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:765 0xa957ad35:0x00000000)
我能在客户端做什么吗? (例如,使用特定协议强制下载管理器) 远程主机只启用了TLS 1.0 / 1.1 / 1.2,没有SSL。
还尝试从我的机器上运行一些测试,我得到以下内容:
> openssl s_client -connect <myhost>:443
CONNECTED(00000003)
24485:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.30.2/src/ssl/s23_clnt.c:593:
任何提示都将受到高度赞赏,谢谢!
答案 0 :(得分:1)
我能在客户端做什么吗? (例如,使用特定协议强制下载管理器)
只有您可以提供一些不同的URL来下载相同的内容,但无论出于何种原因,它都会通过不会出现问题的其他服务器配置运行。这方面的典型示例是使用http
网址DownloadManager
。这将是不幸的; OTOH,取决于您的minSdkVersion
,可能是必要的,因为旧的Android版本(1.x / 2.x IIRC)通常不支持https
DownloadManager
。
否则,DownloadManager
是它自己的应用程序,并且您没有对其处理SSL的方式进行细粒度控制。