当前位置: 首页 > 知识库问答 >
问题:

如何在启用SSL时更正IBM MQ错误

甘骞尧
2023-03-14
    null

Java客户端使用

  1. JDK1.7.0_21
  2. 工作密码/套件->SSL_RSA_WITH_RC4_128_SHA<>RC4_SHA_US

当我试图连接到MQ V7.1.0.7队列管理器时,应用程序抛出以下错误:

 com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2397'.
         at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:228)
         at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:553)
         at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:593)
         at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:95)
         at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:198)
         at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:882)
AMQ9616: The CipherSpec proposed is not enabled on the server.

 EXPLANATION: The SSL or TLS subsystem at the server end of a channel
 been configured in such a way that it has rejected the CipherSpec
 proposed by an SSL or TLS client. This rejection occurred during the
 secure socket handshake (i.e. it happened before the proposed
 CipherSpec was compared with the CipherSpec in the server channel
 definition). 

有人能提供帮助,系统出了什么问题,以前是工作的?

通过在qm.ini文件中添加下面的行来解决

SSL:
    AllowSSLV3=Y
    AllowWeakCipherSpec=Y

更新(2017/01/27),并附有其他问题:

工作于TLSv1以下

    null

TLSV1.2失败

  1. TLS_RSA_WITH_RC4_128_SHA256 SSL_RSA_WITH_RC4_128_SHA TLSV1.2 false

我尝试了以下设置:

    null
There is a mismatch between the CipherSpecs on the local and remote ends
of channel 'TEST.CH'. The channel will not run until this mismatch is 
resolved.The CipherSpec required in the local channel definition is 
'TLS_RSA_WITH_RC4_128_SHA256'. The name of the CipherSpec negotiated during
the SSL handshake is 'RC4_SHA_US'. A code is displayed if the name of the
negotiated CipherSpec cannot be determined
  1. sslContext sslContext=sslContext.getinstance(“tlsv1.2”);
  2. mqenvironment.sslfipsRequired=true;
  3. mqenvironment.sslciphersuite=“SSL_RSA_WITH_AES_256_CBC_SHA256”;
  4. 更改通道(test.ch)CHLTYPE(SVRCONN)SSLCIPH(TLS_RSA_WITH_AES_256_CBC_SHA256)
  5. 刷新安全类型(SSL)
  6. 客户端执行/apps/java/jdk1.7.0_21/bin/java-dcom.ibm.mq.cfg.prefertls=true-dcom.ibm.mq.cfg.useibmciphermappings=false-classpath.://tmp/mqssl/com.ibm.mq.jmqi.jar://tmp/mqssl/com.ibm.ws.webservices.thinclient_8.5.0.jar mqproducerssl

获取错误为MQJE001:完成代码“2”,原因“2400”MQRC_unsupported_cipher_suite(2400)

更新(2017/01/30),并附有其他问题:

仍然是同样的错误,但是在我的客户机中,java prg启用了System.SetProperty(“javax.net.debug”,“all”);在执行客户机时查看所有活动。它将TLS_RSA_WITH_AES_256_CBC_SHA256打印为忽略不可用的密码套件,如下所示

Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256

通话前

MQJE001: Completion Code '2', Reason '2400'.  
MQJE001: Completion Code '2', Reason '2400'.  
Specification-Version: 7.1.0.1  
Specification-Vendor: IBM Corporation  
Implementation-Title: WebSphere MQ classes for Java  
Implementation-Version: 7.1.0.1 - k710-001-120424  
Specification-Version: 7.1.0.1  
Specification-Vendor: IBM Corporation  
Implementation-Title: WebSphere MQ Interface for Java  
Implementation-Version: 7.1.0.1 - k710-001-120424  

更新(2017/01/31A),并提出补充问题:

由于MQ和客户机运行在同一台机器上,所以通过更改类路径,在两个场景中完成了规范版本:7.1.0.7JARS
测试

  1. 不带-dcom.ibm.mq.cfg.useibmciphermappings=false

获取异常MQJE001:完成代码“2”,原因“2393”

com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2393'.  
at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:232)  
at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:553)  
at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:593)  
at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:96)  
at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:198)  
at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:893)  
at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:780)  
at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:729)  
at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:177)  
at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:674)  
at MQProducerSSL.main(MQProducerSSL.java:89)  
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2393;AMQ9204: Connection to host 'localhost(2017)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2393;AMQ9771: SSL handshake failed. [1=java.lang.IllegalArgumentException[Cannot support TLS_RSA_WITH_AES_256_CBC_SHA256 with currently installed providers],3=localhost/127.0.0.1:2017 (localhost),4=SSLSocket.createSocket,5=default]],3=localhost(2017),5=RemoteTCPConnection.makeSocketSecure]  

更新(2017/01/31B),并提出补充问题:

MQEnvironment.sslFipsRequired = false;  
MQEnvironment.sslCipherSuite = "TLS_RSA_WITH_AES_128_CBC_SHA256";  
ALTER CHANNEL(TEST.CH) CHLTYPE(SVRCONN) SSLCIPH(TLS_RSA_WITH_AES_128_CBC_SHA256)  
/apps/hostlink/java/jdk1.7.0_21/jdk1.7.0_21/bin/java -Dcom.ibm.mq.cfg.preferTLS=true -Dcom.ibm.mq.cfg.useIBMCipherMappings=false -classpath .:/opt/mqm/java/lib/com.ibm.mq.jmqi.jar:/opt/mqm/java/lib/com.ibm.mq.jar MQProducerSSL

MQJE001:完成代码“2”,原因“2397”。

MQJE001: Completion Code '2', Reason '2397'.
com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2397'.
        at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:232)
        at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:553)
        at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:593)
        at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:96)
        at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:198)
        at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:893)
        at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:780)
        at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:729)
        at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:177)
        at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:674)
        at MQProducerSSL.main(MQProducerSSL.java:89)
Not working , when given below parameters , throwing **MQJE001: Completion Code '2', Reason '2400'** 

-Dcom.ibm.mq.cfg.useIBMCipherMappings=false  
-Dcom.ibm.mq.cfg.preferTLS=true

更新(2017/02/01),并附有其他问题:

控制台中的完全异常

MQJE001: Completion Code '2', Reason '2397'.
com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2397'.
        at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:232)
        at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:553)
        at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:593)
        at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:96)
        at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:198)
        at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:893)
        at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:780)
        at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:729)
        at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:177)
        at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:674)
        at MQProducerSSL.main(MQProducerSSL.java:89)
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2397;AMQ9204: Connection to host 'localhost(2017)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2397;AMQ9771: SSL handshake failed. [1=javax.net.ssl.SSLHandshakeException[Error signing certificate verify],3=localhost/127.0.0.1:2017 (localhost),4=SSLSocket.startHandshake,5=default]],3=localhost(2017),5=RemoteTCPConnection.protocolConnect]
        at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:2098)
        at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1347)
        at com.ibm.mq.MQSESSION.MQCONNX_j(MQSESSION.java:924)
        at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:221)
        ... 10 more
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2397;AMQ9771: SSL handshake failed. [1=javax.net.ssl.SSLHandshakeException[Error signing certificate verify],3=localhost/127.0.0.1:2017 (localhost),4=SSLSocket.startHandshake,5=default]
        at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.protocolConnect(RemoteTCPConnection.java:1310)
        at com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect(RemoteConnection.java:714)
        at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSessionFromNewConnection(RemoteConnectionSpecification.java:356)
        at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSession(RemoteConnectionSpecification.java:265)
        at com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession(RemoteConnectionPool.java:144)
        at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1709)
        ... 13 more
Caused by: javax.net.ssl.SSLHandshakeException: Error signing certificate verify
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1886)
        at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
        at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:987)
        at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:285)
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
        at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
        at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection$6.run(RemoteTCPConnection.java:1280)
        at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection$6.run(RemoteTCPConnection.java:1273)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.protocolConnect(RemoteTCPConnection.java:1271)
        ... 18 more
Caused by: java.security.NoSuchAlgorithmException: SHA224withRSA Signature not available
        at java.security.Signature.getInstance(Signature.java:224)
        at sun.security.ssl.JsseJce.getSignature(JsseJce.java:241)
        at sun.security.ssl.HandshakeMessage$CertificateVerify.<init>(HandshakeMessage.java:1552)
        at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:982)
        ... 29 more

来自amqerr01.log

----- amqrmrsa.c : 930 --------------------------------------------------------
01/31/2017 08:45:00 PM - Process(14444.328) User(mqm) Program(amqrmppa)
                    Host(testvm) Installation(Installation1)
                    VRMF(7.1.0.7) QMgr(TLSTEST.QM)

AMQ9665: SSL connection closed by remote end of channel '????'.

EXPLANATION:
The SSL or TLS connection was closed by the remote host 'localhost (127.0.0.1)'
during the secure socket handshake. The channel is '????'; in some cases its
name cannot be determined and so is shown as '????'. The channel did not start.
ACTION:
Check the remote end of the channel for SSL and TLS errors. Fix them and
restart the channel.
----- amqccisa.c : 6478 -------------------------------------------------------
01/31/2017 08:45:00 PM - Process(14444.328) User(mqm) Program(amqrmppa)
                    Host(testvm) Installation(Installation1)
                    VRMF(7.1.0.7) QMgr(TLSTEST.QM)

AMQ9492: The TCP/IP responder program encountered an error.

EXPLANATION:
The responder program was started but detected an error. 

The host name was 'localhost (127.0.0.1)'; in some cases the host name cannot
be determined and so is shown as '????'.
ACTION:
Look at previous error messages in the error files to determine the error
encountered by the responder program.
----- amqrmrsa.c : 930 --------------------------------------------------------
matching alias: ibmwebspheremqtlstest.qm
*** Certificate chain
chain [0] = [
[
  Version: V3
  Signature Algorithm: SHA1withRSA, 
SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
MQEnvironment.sslFipsRequired = false;  
MQEnvironment.sslCipherSuite = "TLS_RSA_WITH_AES_128_CBC_SHA256";  
ALTER CHANNEL(TEST.CH) CHLTYPE(SVRCONN) SSLCIPH(TLS_RSA_WITH_AES_128_CBC_SHA256)
MQEnvironment.sslFipsRequired = false;
MQEnvironment.sslCipherSuite = "SSL_RSA_WITH_NULL_SHA256";
ALTER CHANNEL(TEST.CH) CHLTYPE(SVRCONN) SSLCIPH(TLS_RSA_WITH_NULL_SHA256)

但是问题是如何使用低于8的Oracle java版本的TLSv2密码呢?

解决/解决问题:将逐一尝试

1)使用IBM JVM
2)测试Oracle Java V8
3)尝试MQ V8
4)其他选项设置SSLCAUTH=optional,并且不需要客户端证书。

export LD_LIBRARY_PATH=/opt/mqm/gskit8/lib64  
export PATH=$PATH:/opt/mqm/gskit8/bin  
runmqckm  

bash: runmqckm: command not found  
runmqakm  -keydb -create  -db /var/mqm/qmgrs/TLSTEST\!QM/ssl/key.jks  -pw password  -type jks  
CTGSK3017W The database type "jks" is not recognized.  

已解决

不需要在路径下面设置

export LD_LIBRARY_PATH=/opt/mqm/gskit8/lib64  
export PATH=$PATH:/opt/mqm/gskit8/bin  

共有1个答案

欧阳安阳
2023-03-14

2015年11月19日发布的IBM MQ Fix Pack 7.1.0.7包含以下APAR:

IV73396:WEBSPHERE MQ V7队列管理器中不使用SSLV3密码规范

问题说明:

SSLv3协议[RFC6101]自1996年发布以来,无论是在密钥交换机制上还是在其支持的加密方案上,都受到了一系列的攻击。尽管在1999年被TLS 1.0[RFC2246]、2002年被TLS 1.1[RFC4346]和2006年被TLS 1.2[RFC5246]所取代,但这些取代版本并不普遍。因此,许多TLS实现都允许SSLv3协商。

SSLv3的前身SSL Version2不再被认为是足够安全的[RFC6176]。SSLv3现在紧随其后。

Miguel a.Rodriguez于2016年5月19日发表了一篇非常好的IBM developerWorks博客文章“针对MQ产品的SSL和TLS密码规范弃用”,详细介绍了在各种修复包中弃用哪些密码。

IBM MQ V6.0.2.12没有问题的原因是,该版本已经失去支持四年多了(自2012年9月30日以来),并且IBM不会像支持的版本那样为服务端版本发布任何安全更新。

我建议您转到受支持的IBM MQ版本。在考虑升级到哪个版本时,请注意当前支持的两个版本将在未来16个月内失去支持:

  • MQ V7.1在不到四个月的时间内于2017年4月30日失去支持。
  • MQ V7.5于2018年4月30日失去支持。
  • MQ V8.0和V9.0当前没有宣布支持结束日期。
Oracle CipherSuite              IBM MQ CipherSpec
TLS_RSA_WITH_NULL_SHA256        TLS_RSA_WITH_NULL_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256

为了与IBM JRE Ciphersuite名称进行比较,WebSphere MQ classes For Java中的V7.1知识中心页面SSL CipherSpecs和CipherSuites列出了类似的映射:

IBM CipherSuite                 IBM MQ CipherSpec
SSL_RSA_WITH_NULL_SHA256        TLS_RSA_WITH_NULL_SHA256
SSL_RSA_WITH_AES_256_CBC_SHA    TLS_RSA_WITH_AES_256_CBC_SHA
SSL_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256

更新(2017/01/27),以解决进一步的问题

MQ CipherSpec TLS_RSA_WITH_RC4_128_SHA256不是APAR IV66840中列出的那些在MQ V7.1下为非IBM JREs启用的密文之一,它只在V8.0下列出。上面我列出了添加到MQ V7.1中的三个TLSV1.2密码规范。

我建议您尝试TLS_RSA_WITH_AES_256_CBC_SHA256作为MQ通道上的CipherSpec,并尝试TLS_RSA_WITH_AES_256_CBC_SHA256作为Java CipherSuite。

下面的设置应该与我建议的CipherSpec/CipherSuite一起使用,请注意,我将其从TLSv1更改为TLSv1.2

SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
-Dcom.ibm.mq.cfg.preferTLS=true
-Dcom.ibm.mq.cfg.useIBMCipherMappings=false

更新(2017/01/30),试图解决进一步的问题

在您的问题中,您提到了类路径中的这些jar文件:/tmp/mqssl/com.ibm.mq.jmqi.jar://tmp/mqssl/com.ibm.mq.jar

产出将是:

实现-版本:x.x.x.x-pxxx-xxx-yymmd

更新(2017/01/31),以解决进一步的问题

在系统中获取MQ jar文件或MQ C/C++库文件的唯一受支持的方法是安装:

  • WebSphere MQ产品或
  • WebSphere MQ Client SupportPacs.

要合法下载和使用客户端,您必须首先接受许可协议中指定的条款和条件。

    null

如果您的应用程序与MQ V7.1.0.7队列管理器位于同一服务器上,那么您只需引用/opt/mqm/java/lib目录中的jar文件即可。

如果您的应用程序不在同一台服务器上,并且您计划使用V7.1或V7.5,我建议安装最新的完整客户端安装,请参阅上面关于根据服务结束时间提出的版本建议的说明。

如果您决定使用v8或v9,IBM Technote“支持的安装WebSphere MQ Java jar文件、JMS jar文件或C/C++库的方法”还指出:

    null

这意味着在V8.0.0.4和更高版本中,您可以下载一个MQ、JMS和Java仅可再发行的客户机。

这里的FixCentral提供了MQ、JMS和Java仅可再发行的客户端客户端包。

更新(2017/01/31A)以解决进一步的问题

在这种情况下,问题是由于试图使用AES 256强密码算法造成的。

大多数Java JRE,包括Oracle/Sun和IBM的JRE,对加密算法启用了导入限制。这限制了最大密钥大小和一些算法。

当试图在MQ Java/JMS应用程序中使用AES256密码时,如ECDHE_RSA_AES_256_CBC_SHA384或TLS_RSA_WITH_AES_256_CBC_SHA256,您需要确保JRE支持该密码。在大多数情况下,当需要更强的密码算法(如AES 256密码)时,必须获得JCE无限强度权限策略文件并将其安装到JDK/JRE中。

如果需要更强的算法(例如,使用256位密钥的AES),则必须获得JCE无限强度权限策略文件并将其安装在JDK/JRE中。

用户有责任核实此操作是否在当地法规下是允许的。

我建议您要么使用较低的CipherSuiteTLS_RSA_WITH_AES_128_CBC_SHA256,要么按照上面的建议获取并安装JCE无限强度权限策略文件。

假设使用Oracle JVM:

我们发现问题的根本原因是签名算法SHA224withRSA不受Oracle JRE1.7支持,请参见可用的签名算法:

https://docs.oracle.com/javase/7/docs/technotes/guides/security/sunproviders.html

这种签名算法在IBM JVM和Oracle JVM1.8中都可用。

https://docs.oracle.com/javase/8/docs/technotes/guides/security/sunproviders.html

在上面的链接中,感兴趣的表位于“SunRsaSign Provider”下,其中列出了以下受支持的签名算法:

    null

更新(2017/02/01B)以解决进一步问题

考虑到通过上面的故障排除收集到的所有信息,答案是不可能在使用MQ V7.1.0.7MQ Java客户机的Oracle Java低于8的情况下使用TLSV1.2密码。

根据我提供的最后一篇dW回答文章,IBM建议尝试使用MQ v8,但我认为他们没有测试这个配置,所以它可能也不能工作。

 类似资料:
  • 问题内容: 从Java 8 Update 31开始,由于SSL协议中的安全漏洞,默认情况下禁用SSL 3协议(请参阅POODLE攻击)。 即使不推荐,如何启用它? 问题答案: 除非使用SSL 3别无选择,否则以下链接将说明配置。 更新31的发行说明提供了有关再次使用Java启用SSL 3的信息。 就像声明的那样: 如果 绝对需要 SSLv3 ,则可以通过从java.security文件中的jdk.

  • 由于Java 8更新31,由于SSL协议中的安全缺陷,SSL 3协议在默认情况下被禁用(请参阅POODLE攻击)。 即使不推荐,如何启用?

  • 我试图解决一个SSLHandshakeExcure,为此,我试图启用SSL调试模式,我尝试设置-Djavax.net.debug=ssl,但它不起作用,记录器只给我有关类的信息,如org.eclipse.util.ssl.SSLContext工厂org.eclipse.util.ssl.X509,这是否意味着Jetty在其核心中不使用JSSE实现? 我试图以这种格式可视化日志:https://do

  • 问题内容: 在Java桌面应用程序上是否有与在命令行上设置类似的内容,在Android上是否有类似设置?我试图通过代码在代码中设置它,但是没有用。 如果没有启用此属性的方法,至少还有另一种方法来调试SSL连接的客户端吗? 编辑: 只是为了澄清,这是指原始SSL套接字(SSLSocket和SSLSocketFactory),而不是Apache库或任何其他网络库。 问题答案: 在这一点上,似乎还没有办

  • 我正在使用JDK 1.6、tomcat 7.0.32和Red Hat Linux。 我需要帮助在本地tomcat实例上设置SSL。 查看tomcat 7官方网站上的说明后: [url]=http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html]http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.ht

  • 我需要侦听多个队列(存在于同一队列管理器中)。我有用于侦听单个队列的可用Spring Boot应用程序代码。但是,有没有任何方法可以从单个Spring Boot应用程序连接到多个队列? 还有,是否可以在运行时将侦听器从一个队列切换到另一个队列? 我有从单个队列读取的代码,如下所示: