- bounty将在5天后过期**。回答此问题可获得+50声望奖励。Killer Queen希望引起更多人关注此问题。
尝试将密码规范从TLS_RSA_WITH_AES_256_CBC_SHA256更改为TLS_AES_256_GCM_SHA384。对于TLS_RSA_WITH_AES_256_CBC_SHA256,我可以连接到IBMMQ队列。更改为TLS_AES_256_GCM_SHA384后,我收到错误:
Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL.
---> Interop+Crypto+OpenSslCryptographicException: error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate
--- End of inner exception stack trace ---
at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, ReadOnlySpan 1 input, Byte[]& sendBuf, Int32& sendCount)
at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteSslContext& context, ReadOnlySpan 1 inputBuffer, Byte[]& outputBuffer, SslAuthenticationOptions sslAuthenticationOptions)
--- End of inner exception stack trace ---
at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
at System.Net.Security.SslStream.AuthenticateAsClient(SslClientAuthenticationOptions sslClientAuthenticationOptions)
at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
at IBM.WMQ.Nmqi.MQEncryptedSocket.MakeSecuredConnection()
我应该配置其他东西吗?我将添加应用程序是在Linux上,从. net客户端建立的连接是受管理的。
Openssl配置:
CipherString = @SECLEVEL=1:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8:AES256-SHA256:!ECDHE-RSA-AES256-GCM-SHA384:!AES256-GCM-SHA384:!AES128-SHA256
Ciphersuites = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256
TLS.MinProtocol = TLSv1.2
TLS.MaxProtocol = TLSv1.3
DTLS.MinProtocol = DTLSv1.2
DTLS.MaxProtocol = DTLSv1.2
SignatureAlgorithms = ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA512:ed25519:ed448:rsa_pss_pss_sha256:rsa_pss_rsae_sha256:rsa_pss_pss_sha384:rsa_pss_rsae_sha384:rsa_pss_pss_sha512:rsa_pss_rsae_sha512:RSA+SHA256:RSA+SHA384:RSA+SHA512:ECDSA+SHA224:RSA+SHA224:ECDSA+SHA1:RSA+SHA1sh-4
我使用的是**IBMXMSDotnetClient版本9.3.2。**更改密码后出现的错误是:
2059(080B)(RC2059):MQRC_Q_管理员_不可用。
当我在服务器端使用旧版本时,返回了一个密码不匹配错误(没有ssl错误),即它显示我使用了TLS_RSA_WITH_AES_256_CBC_SHA256,而我应该使用TLS_AES_256_GCM_SHA384。
2条答案
按热度按时间dced5bon1#
根据IANA site
TLS_AES_256_GCM_SHA384
是十六进制的0x13,0x02
,一般写成1302
。您没有提到服务器上运行的MQ的版本,但确实声明它不支持TLS1.3,v9.2是MQ开始支持TLS1.3的时候,所以我假设9.1或更低版本。
根据IBM MQ,Enabling CipherSpecs page 1302不受支持。
我怀疑你真的想要TLS1.2密码
TLS_RSA_WITH_AES_256_GCM_SHA384
,它是受支持的,是009D。根据这个testssl.sh openssl mapping site
1302=openssl密码
TLS_AES_256_GCM_SHA384
,该密码与IANA名称TLS_AES_256_GCM_SHA384
匹配,并且是您指定的密码。009D=openssl密码
AES256-GCM-SHA384
,其IANA名称为TLS_RSA_WITH_AES_256_GCM_SHA384
,与IBM MQ队列管理器的名称相匹配,并支持作为TLS1.2密码。我建议您更新openssl以指定TLS1.2密码
AES256-GCM-SHA384
,而不是TLS1.3密码TLS_AES_256_GCM_SHA384
。plupiseo2#
TLS_RSA_WITH_AES_256_CBC_SHA256(根据IBM SDK文档,等同于SSL_RSA_WITH_AES_256_CBC_SHA256)仅适用于TLSv1.2协议。
TLS_AES_256_GCM_SHA384仅适用于TLSv1.3协议。
IBM SDK - Cipher Suites Documentation
因此,我首先要确认WAS是否接受TLSv1.3和TLSv1.2协议 *。如果您使用的是TWAS,请检查SSL配置(部署MQ的应用服务器正在使用)以获取QoP设置。在管理控制台中,下面是一个示例路径:
安全性-〉SSL证书和密钥管理〉SSL配置〉NodeDefaultSSL设置〉保护质量(QoP)设置