Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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
Oracle Java 8没有';t支持密码套件TLS\u ECDHE\u RSA\u和\u AES\u 256\u CBC\u SHA384_Java_Java 8_Ibm Mq - Fatal编程技术网

Oracle Java 8没有';t支持密码套件TLS\u ECDHE\u RSA\u和\u AES\u 256\u CBC\u SHA384

Oracle Java 8没有';t支持密码套件TLS\u ECDHE\u RSA\u和\u AES\u 256\u CBC\u SHA384,java,java-8,ibm-mq,Java,Java 8,Ibm Mq,如何在java 1.8.0\u 51中使用AES\U 256\U CBC\U SHA384启用TLS\U ECDHE\U RSA\U 我的环境 Windows Server 2016 java version 1.8.0_51 我需要在同一台服务器上的几个项目中将MQ通道和密码套件从C2升级到C6。我已经升级了这些项目中的MQ JAR和MQ连接配置。 来自不同项目的日志中出现相同的错误消息:无法通过当前安装的提供商支持TLS\u ECDHE\u RSA\u和\u AES\u 256\u CBC

如何在java 1.8.0\u 51中使用AES\U 256\U CBC\U SHA384启用TLS\U ECDHE\U RSA\U

我的环境

Windows Server 2016
java version 1.8.0_51
我需要在同一台服务器上的几个项目中将MQ通道和密码套件从C2升级到C6。我已经升级了这些项目中的MQ JAR和MQ连接配置。
来自不同项目的日志中出现相同的错误消息:无法通过当前安装的提供商支持TLS\u ECDHE\u RSA\u和\u AES\u 256\u CBC\u SHA384。

检查日志后我做了什么:
步骤1:
第2步:解压缩jce_policy-8.zip并用新的替换C:\Program Files(x86)\Java\jre1.8.0_51\lib\security中现有的local_policy.jar和US_export_policy.jar
步骤3:使用以下命令检查cmd中支持的密码套件:

C:\Program Files (x86)\Java\jre1.8.0_51\bin>jjs
jjs> print(java.util.Arrays.toString(javax.net.ssl.SSLServerSocketFactory.getDefault().getSupportedCipherSuites()).replaceAll(",","\n"))
我期望的结果

[TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
 TLS_RSA_WITH_AES_128_CBC_SHA256
 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
... ]
但是结果中没有显示所有以“TLS\U ECDH”开头的密码套件名称,包括我在项目TLS\U ECDHE\U RSA\U中配置的带有AES\U 256\U CBC\U SHA384的密码套件。
然后我注意到,即使在升级JCE JAR之前,TLS_ECDH*也不受支持

我认为这可能与C:\ProgramFiles(x86)\Java\jre1.8.0\U 51\lib\security\Java.security中的security.provider设置有关。但我不知道我需要改变什么。
以下是我当前的security.provider设置:

security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=sun.security.mscapi.SunMSCAPI

在问题描述更新java中添加我当前的security.provider设置?最新的java 8 build 222Hi Minn,我现在不允许更新java版本。那么您可能会面临严重的安全漏洞,例如SNI损坏。如果您无法升级java或安装新的提供程序,则无法解决此问题,因为这些都是解决方案。请在问题描述中添加我当前的security.provider设置。是否更新java?最新的java 8 build 222Hi Minn,我现在不允许更新java版本。那么您就有可能面临重大安全漏洞,例如SNI损坏。如果您无法升级java或安装新的提供商,您就无法解决此问题,因为这些就是解决方案。