[英]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.