OP在注释中指出,他们使用OpenJDK 8,并且正在使用IBM MQ
v9.0.0.1资源适配器,该发行版中修复了以下两个已知问题,但将此信息放在此处是为其他可能尚未使用的人带来好处在发布时已修复了这些问题:
APAR IV66840:直到8.0.0.2才支持非IBM JRE中的TLS密码规范。
APAR IT10837:如果使用非IBM JRE查找包含客户机证书的KeyStore,则WildFly 9可能会遇到另一个问题,此问题已在8.0.0.5中修复。
资源适配器包括支持TLS的MQ功能,但使用底层JSSE进行实际加密。
基于RFC 5246它表明TLS客户端应仅返回证书基于所述服务器发送“上是适合
的专有名称[X501]可接受certificate_authorities,在DER编码格式表示。的列表
,这将意味着”如果keyStore中用于不同用途的证书(例如:现有的非MQ证书和MQ证书) 不是
由同一CA链签名的,并且您连接的各种TLS服务器不接受来自其他证书的CA的证书在密钥库中(例如:现有的非MQ证书和MQ证书),那么JSSE将为每个证书返回相应的证书。
例如,如果现有的非MQ证书是由内部CA签名的,而MQ证书是由另一家公司的CA签名的,则MQ公司不太可能会信任您的内部CA证书,相反,您的其他非MQ证书也不太可能您连接到的TLS服务器将信任其他公司的CA。由于JSSE仅返回远程服务器信任的证书,因此它们不会相互影响。您只需要将MQ证书添加到现有密钥库中即可。
RFC 5246相关部分的引号在本文的底部。
@a_cornish_pasty回答“
使用特定的JMS密钥库”的问题也是一种选择,因为它可以让您指定与其他Wildfly使用的密钥库不同的密钥库,此密钥库只能具有MQ证书,因此没有机会导致现有密钥库和证书出现问题。
RFC 5246第7.4.4节规定以下内容:
7.4.4。证书申请
该消息何时发送:
非匿名服务器可以选择从客户端请求证书
(如果适用于所选密码套件)。如果发送了此消息,它将立即跟随ServerKeyExchange消息(如果已发送;否则,该消息将跟随服务器的证书消息)。
然后继续声明:
certificate_authorities
可接受的certificate_authorities的专有名称[X501]的列表 ,以DER编码格式表示。
这些专有名称可以为根CA或从属CA指定所需的专有名称。 因此,此消息可用于描述已知根以及所需的授权空间。
如果certificate_authorities列表为空,则客户可以发送任何具有适当ClientCertificateType的证书,除非有相反的外部安排。
RFC 5246第7.4.6节规定以下内容:
7.4.6。客户证书
该消息何时发送:
这是客户端收到ServerHelloDone消息后可以发送的第一条消息。 仅当服务器请求证书时才发送此消息。
如果没有合适的证书可用,则客户端必须发送不包含证书的证书消息。
即,certificate_list结构的长度为零。如果客户端没有发送任何证书,则服务器可以自行决定是否在没有客户端身份验证的情况下继续握手,或者以致命的handshake_failure警报进行响应。同样,如果证书链的某些方面是不可接受的(例如,它不是由已知的,受信任的CA签名的),则服务器可以自行决定继续握手(考虑到客户端未经身份验证)或发送致命警报。
然后继续声明:
- 如果证书请求消息中的certificate_authorities列表是非空的, 则应由列出的CA之一颁发证书链中的证书之一。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)