2015-04-19 55 views
0

我正在使用HttpsURLConnection在我的android應用上執行http調用,其中一些調用了AWS。 由於AWS很快就不再支持SSLv3,所以我需要確保我的調用支持TLSv1.2。HttpsURLConnection和TLSv1.2

默認情況下HttpsURLConnection是否支持TLSv1.2,或者是否應該明確配置它以使用它而不是SSLv3?

回答

2

使用Android的HttpsURLConnection時,您可以使用NetCipher庫來獲得現代TLS配置。 NetCipher將HttpsURLConnection實例配置爲使用支持的最佳TLS版本以及該TLS版本的最佳密碼套件。首先,它添加到您的的build.gradle

compile 'info.guardianproject.netcipher:netcipher:1.2' 

或者,你可以直接在你的應用程序下載netcipher-1.2.jar和包括它。 。然後,而不是調用:

HttpURLConnection connection = (HttpURLConnection) sourceUrl.openConnection(); 

調用此:

HttpsURLConnection connection = NetCipher.getHttpsURLConnection(sourceUrl); 
-1

Android在所有版本中都支持SSLv3和TLSv1。從API級別16開始,Android開始支持TLSv1.1和TLSv1.2。如果您的目標達到或超過API級別16,則應該沒問題。對於低於16的目標,Android將在服務器支持時使用TLSv1。您可以針對支持TLSv1或更高版本的終端測試您的應用,例如https://www.banner.iup.edu/。有關更多詳細信息,請參見SSLEngineSSLContext