正常的方式來獲得一個SSLSocketFactory
將初始化一個新SSLContext
與TrustManager
,KeyManager
和SecureRandom
並使用getSocketFactory()
方法。但是,這不允許我啓用所需的密碼套件或協議。如何設置用於使用HttpsURLConnection創建的套接字的密碼和協議列表?
HttpsURLConnection
允許進行此類更改的唯一配置是將其默認設置爲SSLSocketFactory
。我可以創建一個擴展SSLSocketFactory
並覆蓋getDefaultCipherSuites()
方法的類,並將由createSocket()
創建的套接字包裝爲設置所需的密碼和協議。但是,這種方法不允許我爲連接初始化一個TrustManager
?
是否有一種方法可以同時執行 - 設置密碼套件和協議並初始化信任管理器?
如果通過系統屬性進行設置,它將變爲全局。我可能只想爲特定的連接或甚至只是一個特定的應用程序設置它。 – varrunr
同意。但是你沒有在你的問題中說明這個要求。 – EJP
爲了完整性(剛剛關閉[this as a duplicate](http://stackoverflow.com/q/24888420/372643)),相關係統屬性爲'https.cipherSuites'。 – Bruno