嘗試連接到 IBM MQ 佇列。
下面是負責創建連接的代碼:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
IConnection connectionMQ;
factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
IConnectionFactory cf = factoryFactory.CreateConnectionFactory();
cf.SetStringProperty(XMSC.WMQ_HOST_NAME, "host");
cf.SetIntProperty(XMSC.WMQ_PORT, port);
cf.SetStringProperty(XMSC.WMQ_CHANNEL, "channel");
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "queueManager");
cf.SetStringProperty(XMSC.WMQ_SSL_PEER_NAME, "sslPeerName");
cf.SetStringProperty(XMSC.WMQ_SSL_CIPHER_SPEC, "TLS_RSA_WITH_AES_256_CBC_SHA256");
cf.SetStringProperty(XMSC.WMQ_CCSID, "ccSid");
cf.SetStringProperty(XMSC.WMQ_SSL_KEY_REPOSITORY, "*USER");
cf.SetStringProperty(XMSC.WMQ_SSL_CLIENT_CERT_LABEL, "clientCertLabel");
connectionMQ = cf.CreateConnection();
服務器端可見的錯誤:
AMQ9631E: 在 SSL 握手期間協商的 CipherSpec 與通道“通道”所需的 CipherSpec 不匹配。
解釋:通道“通道”的本地端和遠程端的 CipherSpec 不匹配。在解決此不匹配問題之前,通道不會運行。本地通道定義中所需的 CipherSpec 是“TLS_RSA_WITH_AES_256_CBC_SHA256”。SSL 握手期間協商的 CipherSpec 的名稱是“TLS_RSA_WITH_AES_256_GCM_SHA384”。如果無法確定協商的 CipherSpec 的名稱,則會顯示一個代碼。操作:更改“通道”的通道定義,使兩端具有匹配的 CipherSpecs 并重新啟動通道。當使用“ANY”型別的 CipherSpecs 時,確保客戶端 CipherSpec 值將滿足在通道“通道”上設定的“TLS_RSA_WITH_AES_256_CBC_SHA256”CipherSpec 的要求。如果客戶端設定為使用“ANY” 型別 CipherSpecs 然后 TLS 握手可能使用比通道通道定義 CipherSpec 允許的更高的協議。如果通道一端使用的證書是全域服務器證書,則協商的 CipherSpec 可能與通道任一端指定的不匹配。這是因為 SSL 協議允許全域服務器證書自動協商更高級別的加密。在這些情況下,請指定滿足全球服務器證書要求的 CipherSpec。這是因為 SSL 協議允許全域服務器證書自動協商更高級別的加密。在這些情況下,請指定滿足全球服務器證書要求的 CipherSpec。這是因為 SSL 協議允許全域服務器證書自動協商更高級別的加密。在這些情況下,請指定滿足全球服務器證書要求的 CipherSpec。
為什么,盡管我通過 .net 傳遞了 TLS_RSA_WITH_AES_256_CBC_SHA256,但您可以在服務器端日志中看到 TLS_RSA_WITH_AES_256_GCM_SHA384?
客戶端在redhat上。
uj5u.com熱心網友回復:
對于 IBM MQ/XMS .NET 客戶端,應用程式級別的密碼集僅用于確定 TLS 版本。 在 Windows 上運行的客戶端: IBM MQ/XMS .NET 客戶端依賴 Microsoft 的 SSLStreams 進行 SSL 通信。要設定首選密碼,必須啟用并編輯 Windows 組策略以使用特定密碼。啟用并編輯后,必須重新啟動機器以獲取更改。請注意,Windows 組策略中的更改適用于機器上運行的所有應用程式。
以下 KC 頁面有更多資訊 https://www.ibm.com/docs/en/ibm-mq/9.1?topic=client-cipherspec-support-managed-net
對于在 Linux On Linux .NET 上運行的客戶端,使用 openssl 進行 SSL 通信,因此要設定 CipherSpec 首選項,必須編輯 Openssl 組態檔
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/529647.html
