Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何设置要用于使用HttpsURLConnection创建的套接字的密码和协议列表?_Java_Ssl_Httpsurlconnection - Fatal编程技术网

Java 如何设置要用于使用HttpsURLConnection创建的套接字的密码和协议列表?

Java 如何设置要用于使用HttpsURLConnection创建的套接字的密码和协议列表?,java,ssl,httpsurlconnection,Java,Ssl,Httpsurlconnection,获取SSLSocketFactory的正常方法是使用TrustManager、KeyManager和SecureRandom初始化一个新的SSLContext,并使用getSocketFactory()方法。但是,这不允许我启用所需的密码套件或协议 HttpsURLConnection允许进行此类更改的唯一配置是通过设置其默认值SSLSocketFactory。我可以创建一个扩展SSLSocketFactory的类,覆盖getDefaultCipherSuite()方法,并包装createSoc

获取
SSLSocketFactory
的正常方法是使用
TrustManager
KeyManager
SecureRandom
初始化一个新的
SSLContext
,并使用
getSocketFactory()
方法。但是,这不允许我启用所需的密码套件或协议

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


是否有一种方法可以同时执行-设置密码套件和协议以及初始化信任管理器?

获取由
SSLContext.getSocketFactory()
获得的
SSLSocketFactory
并将其包装在
SSLSocketFactory
的自定义子类中,该子类将委托给从
SSLContext
获得的子类,但是在
createSocket()
中也设置了所需的密码。

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

如果通过系统属性设置,密码套件将变为全局密码套件。我可能只想为一个特定的连接或一个特定的应用程序设置它。同意。但是,您没有在问题中说明该要求。为了完整性(刚刚关闭),相关的系统属性是
https.cipherSuites