我試圖獲得一個連接到WebSphere MQ 8的現有Java應用程序。過去與其他版本的Java和WMQ一起工作,但對於Java 8和WMQ8,這不希望工作。 我越來越:與WMQ 8的Java連接
handling exception: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
SEND TLSv1.2 ALERT: fatal, description = handshake_failure
WRITE: TLSv1.2 Alert, length = 2
called closeSocket()
Exception in thread "main" com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2397'.
我只是不明白這是爲什麼發生。我已經設置了各種javax.net.ssl參數。我使用我創建的適當的SSL_TRUSTSTORE & KEYSTORE。有一個SSL_CIPHERSUITE。 (幾乎)WMQ支持的所有記錄的CipherSuites;我在整個列表我的工作,與設置和環境是這樣的:
- JAVA SSL_CIPHERSUITE = SSL_RSA_WITH_AES_256_CBC_SHA
- WMQ通道SSL_CIPHERSUITE = TLS_RSA_WITH_AES_256_CBC_SHA
- MQ客戶端7.0.0.1 - 我曾嘗試切換到MQ客戶端8,沒有改善
- IBM的WebSphere MQ,版本:8.0.0.5
- 沒有在AMQERR01.LOG對應於客戶端錯誤
- 甲骨文的Java 8(Java(TM)SE茹n時間環境(建立1.8.0_60-B27)) - 與啓用的SSLv3(改變jdk.tls.disabledAlgorithms = RC4,DH密鑰大小< 768)
附加信息:
- 客戶(銀行)正在使用MQ 7,所以我沒有在他們使用的QM的 問題上做出選擇。但是我一直在使用MQ 8進行本地測試,以檢查這是否是問題的一部分。
- 我試過了:-Dcom.ibm.mq.cfg.useIBMCipherMappings = false
- 從Oracle使用JCE Unlimited強制管轄權限策略文件。
請用以下詳細信息更新您的問題:1.您在Java端使用哪種SSL_CIPHERSUITE,2. SVRCONN通道上的SSLCIPH,3.特定MQ客戶端版本(例如:8.0.0.6),4.特定MQ服務器版本,5.對應於客戶端錯誤的MQ隊列管理器AMQERR01.LOG中的任何錯誤,以及6.是否使用IBM JRE或Oracle JRE。 MQ的最新版本已棄用SSLv3和一些TLS密碼規格,我懷疑這是發生了什麼,一旦您更新了所需的詳細信息,我就可以回答您的問題。 – JoshMc