3

获取 an 的正常方法是用 aSSLSocketFactory初始化一个 new ,然后使用该方法。但是,这不允许我启用所需的密码套件或协议。SSLContextTrustManagerKeyManagerSecureRandomgetSocketFactory()

HttpsURLConnection允许进行此类更改的唯一配置是设置其默认值SSLSocketFactory。我可以创建一个扩展SSLSocketFactory和覆盖该getDefaultCipherSuites()方法的类,并包装由创建的套接字createSocket()以设置所需的密码和协议。但是,这种方法不允许我TrustManager为连接初始化一个吗?

有没有一种方法我可以做到 - 设置密码套件和协议并初始化信任管理器?

4

2 回答 2

3

Take the SSLSocketFactory obtained by SSLContext.getSocketFactory() and wrap it in a custom subclass of SSLSocketFactory, which delegates to the one obtained from SSLContext, but in createSocket() also sets the required cipher.

于 2013-07-09T19:32:02.243 回答
1

请参阅 JSSE 参考指南。您可以通过系统属性设置密码套件。

于 2013-07-09T23:30:47.983 回答