SSL证书握手异常中止从CloudFront下载DownloadManager映像

时间:2015-01-22 08:43:55

标签: android amazon-cloudfront

在我的Android应用中,我尝试从亚马逊服务CloudFront下载媒体文件(图片,视频)。

示例链接:https://testcdn.grouvi.org/uploads/94498583-94c4-44b8-911e-2e0c6bcc4b27/86e55069-2627-4c96-9cbe-98fc87f2eb1b.jpg

我使用此代码。

Uri uri = Uri.parse(imageUrl);
String mimeType = MimeTypeMap.getFileExtensionFromUrl(messageComponent.getMediaUrl());
final String fname = "newfilename" + "." + mimeType;
DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setDestinationInExternalPublicDir(context.getResources().getString(R.string.tmp_dir_path), fname);
                    request.setVisibleInDownloadsUi(true);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
long downloadID = downloadManager.enqueue(request);

正在下载Nexus 5(Lolipop), Samsung S5(Kitkat)图片。但是Xaiomi(Kitkat), LG L Fino(Kitkat)图片没有下载。 DownloadManager.COLUMN_TOTAL_SIZE_BYTES给出负-1值

但是当我使用直接亚马逊链接时 https://s3.amazonaws.com/grouvi_s/uploads/1c8f59f6-d1a9-430f-ab5c-2a89bcfbe14b/47e461a3-efa9-421a-8bc9-9b18053cbbbc.jpg

所有手机都可以下载媒体文件。

修改1

我刚在日志中发现了问题的可能原因:

W/DownloadManager﹕ Aborting request for download 840: while trying to execute request: javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x752a9a60: 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:741 0x7362ad74:0x00000000)

据我了解它的某种证书问题。

1 个答案:

答案 0 :(得分:2)

请检查此CVE,我认为它会处理您的问题:http://aws.amazon.com/security/security-bulletins/CVE-2014-3566-advisory/

这意味着默认情况下SSLv3被禁用,因为它不被视为安全