我正在使用HttpsURLConnection在我的android應用上執行http調用,其中一些調用了AWS。 由於AWS很快就不再支持SSLv3,所以我需要確保我的調用支持TLSv1.2。HttpsURLConnection和TLSv1.2
默認情況下HttpsURLConnection是否支持TLSv1.2,或者是否應該明確配置它以使用它而不是SSLv3?
我正在使用HttpsURLConnection在我的android應用上執行http調用,其中一些調用了AWS。 由於AWS很快就不再支持SSLv3,所以我需要確保我的調用支持TLSv1.2。HttpsURLConnection和TLSv1.2
默認情況下HttpsURLConnection是否支持TLSv1.2,或者是否應該明確配置它以使用它而不是SSLv3?
使用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);
Android在所有版本中都支持SSLv3和TLSv1。從API級別16開始,Android開始支持TLSv1.1和TLSv1.2。如果您的目標達到或超過API級別16,則應該沒問題。對於低於16的目標,Android將在服務器支持時使用TLSv1。您可以針對支持TLSv1或更高版本的終端測試您的應用,例如https://www.banner.iup.edu/。有關更多詳細信息,請參見SSLEngine和SSLContext。