簡體   English   中英

如果我在HTTPS服務器上禁用SSLv2 / SSLv3,Android連接將失敗

[英]Android connection fails if I disable SSLv2/SSLv3 on the HTTPS server

在Android應用程序(Nexus 7上的Kitkat 4.4.4)中,我使用Retrofit REST庫來訪問我配置為僅允許TLS但沒有SSL(以修復Poodle漏洞)的HTTPS服務器。

我的Retrofit設置代碼很簡單

RetrofitInterface retrofitInterface = new RestAdapter.Builder()
    .setEndpoint(API.API_URL).build().create(RetrofitInterface.class);

我沒有進一步的SSL特定配置。

如果我在服務器配置中禁用SSLv2 / SSLv3,則REST資源請求將失敗並顯示以下錯誤消息:

failure retrofit.RetrofitError: javax.net.ssl.SSLProtocolException: SSL handshake terminated: ssl=0x69978800: Failure in SSL library, usually a protocol error
    error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure (external/openssl/ssl/s3_pkt.c:1256 0x683cddf8:0x00000003)

當我將HTTPS服務器配置為允許SSLv2 / SSLv3時,問題就會消失。

我是否需要其他配置來強制Android HTTP庫使用TLS而不是SSL?

我發現解決方案是使用Retrofit開發人員提供的OkHttp客戶端。

所以我猜Retrofit中使用的默認HTTP客戶端存在SSL / TLS握手問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM