如何设置用于使用HttpsURLConnection创建的套接字的密码和协议列表?
获取SSLSocketFactory
的常规方法是使用TrustManager
, KeyManager
和SecureRandom
初始化新的SSLContext
并使用getSocketFactory()
方法。 但是,这不允许我启用所需的密码套件或协议。
HttpsURLConnection
允许进行此类更改的唯一配置是通过设置其默认SSLSocketFactory
。 我可以创建一个扩展SSLSocketFactory
并覆盖getDefaultCipherSuites()
方法的类,并包装createSocket()
创建的套接字以设置所需的密码和协议。 但是,这种方法不允许我为连接初始化TrustManager
?
有没有一种方法可以做到 – 设置密码套件和协议并初始化信任管理器?
获取SSLContext.getSocketFactory()
获取的SSLSocketFactory
并将其包装在SSLSocketFactory
的自定义子类中,该子类委托从SSLContext
获取的子类,但在createSocket()
也设置所需的密码。
请参阅JSSE参考指南。 您可以通过系统属性设置密码套件。