IBM JRE-8 over SSL を使用して MQ7.5 に接続しようとしています。MQ システムでは、 TRIPLE_DES_SHA_USを構成し、Java プログラムでSSL_RSA_WITH_3DES_EDE_CBC_SHA暗号スイートを使用して MQ に接続しています。
しかし、以下のエラーが発生しています。
MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
Steps i have followed
Certificated imported to truststore
executed java program with actual channel details of MQ.
Certificate Import to truststore:
/opt/ibm/java-i386-80/jre/bin/keytool -import -alias jre_cert -file qms1.arm -keystore /opt/ibm/java-i386-80/jre/lib/security/cacerts
Enter keystore password:
Owner: CN="XXX, O=XXX, OU=XXX, C=IN"
Issuer: CN="XXX, O=XXX, OU=XXX, C=IN"
Serial number: 115d214a64b03f04
Valid from: 1/17/17 12:36 PM until: 1/13/18 12:36 PM
Certificate fingerprints:
MD5: 1B:F1:6D:D1:88:5B:69:C0:B1:21:07:9C:FA:89:EC:2C
SHA1: 77:DE:4A:66:72:77:34:CC:67:D1:3B:46:D5:1D:E3:B0:20:70:0E:5B
SHA256: DE:F6:1C:96:4A:DE:9F:0C:AF:BF:73:52:1F:23:1A:49:E1:84:AE:3D:FD:97:0D:CF:FF:F3:C3:C7:D4:C0:9B:2E
Signature algorithm name: SHA1withRSA
Version: 3
Trust this certificate? [no]: yes
Certificate was added to keystore
Sample Program we are using.
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.MQC;
import javax.net.ssl.SSLContext;
import java.security.KeyStore;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManagerFactory;
import java.security.cert.*;
import java.util.ArrayList;
import java.util.Collection;
public class MQTest {
private static MQQueueManager _queueManager = null;
public static void main(String[] args) throws Exception {
MQEnvironment.hostname = "XX.XX.XX.XX";
MQEnvironment.channel = "CHANNEL.SVRCONN"; // With SSL
MQEnvironment.port = XXXX;
System.setProperty("javax.net.debug", "ssl");
String cacerts="/opt/jdk1.8.0_121/jre/lib/security/cacerts";
System.setProperty("javax.net.ssl.trustStore", cacerts);
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
MQEnvironment.sslCipherSuite = args[0];
System.out.println("\t using ssl Cipher suite :: " + MQEnvironment.sslCipherSuite);
System.out.println("\t MQEnvironment.version_notice :: " + MQEnvironment.version_notice);
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
MQEnvironment.sslFipsRequired=false;
_queueManager = new MQQueueManager("QUEUE_NAME");
System.out.println("\t _queueManager : " + _queueManager);
}
}
デバッグ ログ:
/opt/ibm/java-i386-80/jre/bin/java -Dcom.ibm.jsse2.disableSSLv3=false -jar MQ_Testing.jar TLS_RSA_WITH_3DES_EDE_CBC_SHA
using ssl Cipher suite :: TLS_RSA_WITH_3DES_EDE_CBC_SHA
MQEnvironment.version_notice :: Java V6 の Websphere MQ クラス.0.0 IBMJSSE2 は、 com.ibm.jsse2.disableSSLv3 ごと
にプロトコル SSLv3 を FALSE に設定することを許可 し ます IBMJSSEProvider2 Build -
Level : -20160616
サポート対象: [SSLv3、TLSv1、TLSv1.1、TLSv1.2]
SERVER_DEFAULT: [SSLv3、TLSv1、TLSv1.1、TLSv1.2]
CLIENT_DEFAULT: [SSLv3、TLSv1、TLSv1.1、TLSv1.2] キーストア
: /opt /ibm/java-i386-80/jre/lib/security/cacerts
keyStore タイプ: jks
keyStore プロバイダー:
init keystore
タイプ IbmX509
trustStore の init keymanager: /opt/jdk1.8.0_121/jre/lib/security/cacerts
trustStore タイプ: jks
trustStore プロバイダー:
init truststore
信頼できる証明書として追加:
件名: CN=Equifax Secure Global eBusiness CA-1、O=Equifax Secure Inc.、C=US
発行者: CN=Equifax Secure Global eBusiness CA-1、 O=Equifax Secure Inc.、C=US
アルゴリズム: RSA; シリアル番号: 0xc3517
月 6 月 21 日 09:30:00 IST 1999 から月 6 月 22 日 09:30:00 IST 2020 まで
、信頼できる証明書として追加:
件名: CN=GeoTrust Primary Certification Authority - G2, OU=(c) 2007
GeoTrust Inc. - For許可された使用のみ、O=GeoTrust Inc.、C=US 発行者: CN=GeoTrust Primary Certification Authority - G2、OU=(c) 2007
GeoTrust Inc. - 許可された使用のみ、O=GeoTrust Inc.、C=US
アルゴリズム: EC; シリアル番号: 0x3cb2f4480a00e2feeb243b5e603ec36b
Mon Nov 05 05:30:00 IST 2007 から Tue Jan 19 05:29:59 IST 2038
------
------
-------
私たちの証明書情報
---
-----
------
信頼できる証明書として追加:
件名: CN=DigiCert Global Root G2、OU=www.digicert.com、O=DigiCert Inc、C=US
発行者: CN=DigiCert Globalルート G2、OU=www.digicert.com、O=DigiCert Inc、C=US
アルゴリズム: RSA; シリアル番号: 0x33af1e6a711a9a0bb2864b11d09fae5
2013 年 8 月 1 日木曜日 17:30:00 IST から 1 月 15 日金曜日 17:30:00 IST 2038
SSLContextImpl: X509ExtendedKeyManager を使用 com.ibm.jsse2.aw
SSLContextImpl: X509TrustManager を使用
JsseJCE: プロバイダー IBMJCE バージョン 1.8 からの SecureRandom IBMSecureRandom の使用 JsseJCE : プロバイダー IBMJCE バージョン 1.8 から SecureRandom IBMSecureRandom を使用 JsseJCE
:
プロバイダー IBMJCEバージョン 1.8 から KeyAgreement ECDH を 使用init JsseJCE 経由: プロバイダー IBMJCE バージョン 1.8 から KeyFactory EC を使用する JsseJCE : プロバイダー TBD から init JsseJce 経由で KeyPairGenerator EC を使用する: EC が利用可能最初のハンドシェイク中の再ネゴシエーション インジケータ
com.ibm.jsse2.renegotiation.indicator ごとに OPTIONAL に設定するか、デフォルトで使用 IBMJSSE2
は、再ネゴシエーション中にピア証明書チェックに対して ID チェックを実行しません
jdk.tls.rejectClientInitiatedRenegotiation ごとにクライアントが開始した再 ネゴシエーション を 許可
するClientHello、TLSv1 RandomCookie: GMT: 1473994730 バイト = { 238, 137, 89, 128, 139, 82, 93, 119, 12, 104, 3, 150, 104, 218, 146, 252, 106, 230, 104, 227 , 220, 195, 133, 177, 224, 70, 52, 127 }
セッション ID: {}
暗号スイート: [SSL_RSA_WITH_3DES_EDE_CBC_SHA]
圧縮方法: { 0 }
拡張 renegotiation_info、ri_length: 0、ri_connection_data: { null } ***
メイン、書き込み: TLSv1 ハンドシェイク、長さ = 52
メイン、読み取り: TLSv1 ハンドシェイク、長さ = 856
*** ServerHello、TLSv1
RandomCookie: GMT: 0 バイト = { 236、88、151、94、111、9、167 , 185, 94, 81, 181, 148, 189, 136, 212, 113, 209, 109, 13, 193, 221, 127, 237, 75, 111, 58, 203, 130 }
セッション ID: {75, 215 , 26, 41, 91, 78, 235, 37, 238, 153, 145, 133, 191, 24, 212, 43, 48, 183, 29, 255, 224, 52, 234, 162, 108, 152, 170 , 224, 17, 94, 63, 154}
暗号スイート: SSL_RSA_WITH_3DES_EDE_CBC_SHA
圧縮方法: 0
拡張 renegotiation_info、ri_length: 0、ri_connection_data: { null } *** JsseJCE : プロバイダー IBMJCE
バージョン 1.8 から MessageDigest MD5 を使用 JsseJCE: プロバイダー IBMJCE バージョン 1.8 から MessageDigest SHA を
使用: V3 サブジェクト: CN="XXX, O=XXX, OU=VIL, C=IN" 署名アルゴリズム: SHA1withRSA、OID = 1.2.840.113549.1.1.5 キー: IBMJCE RSA 公開キー: モジュラス:
29520274597059884884525162797844309564564740860314317076363623205590330620665285960098203994430649948452267736624734060083888254808645851791784899893187301774015459836549786877052861001494184226379092315448710377951407842057987341460256107051853392995727416012224181106667030239052484951915573460835538842193183692008554795370126435248099845779739150211076745709763656203626931710137691863377966754291466123511621939080200053832041159491199213401094161487450139611524627709969107242299349846233668554767700637296506799788156861380576834589242935902127652273390577803901208287815787363344752279450721968318806451327069
公開指数:
65537
有効性: [From: Tue Jan 17 12:36:21 IST 2017,
To: Sat Jan 13 12:36:21 IST 2018]
発行者: CN="XXX, O=XXX, OU=VIL, C=の"
シリアル番号: [1251192874879434500
]
アルゴリズム: [SHA1withRSA]
署名:
0000: 9c 7c 69 77 7b 26 59 e0 d3 10 0c d8 ae 10 b8 29 ..iw..Y........ 0010: 3d a8 3e 63 e5 e0 49 aa 73 71 14 68 a1 5e a8 c3 ...c..I.sq.h.... 0020: 8e 55 ca f2 2f b2 21 00 c9 ac 6f 6e 9a 36 6a 39 .U........on.6j9 0030: 51 68 62 e5 23 e6 49 4a 8f d0 f5 25 16 a0 37 d5 Qhb...IJ......7. 0040: a4 99 ed c4 84 73 61 23 88 76 e7 d4 8e 1b d9 f0 .....sa..v...... 0050: dd b8 e1 8f 21 c3 92 d7 8f b0 3c cc 42 98 17 50 .........B..P 0060: デシベル 09 27 f9 1f 8b c1 29 68 e4 66 00 e2 9e b2 d3 ........hf.... 0070: bd 98 8e 95 00 80 eb d1 3b cf 24 1a 86 ad 35 67 ..........5g 0080: 59 3a 3f e0 20 e7 f0 94 c6 4a 0c 5c 1a de 2b 22 Y........J...... 0090: 6f 1c cb 23 08 55 1c 61 72 29 14 d8 7c 7b bf 31 o....U.ar......1 00a0: 0d d3 0a 38 e1 98 af 65 e5 7d 0f 9c d5 a5 3f 00 ...8...e........ 00b0: f4 b1 dd 89 89 9b 57 42 46 80 a5 7e 30 62 bd cf ......WBF...0b.. 00c0: d5 4b d1 33 df 10 55 ac 3a 46 6e d0 e6 df 7c 35 .K.3..U..Fn....5 00d0: b1 c2 81 ef d0 7b 6d f3 cc ff d1 ea 40 9f 6e 6c ......m.......nl 00e0: 5d c6 8f 45 2a dd 7a 9d 47 de b4 6c 33 0d cf 51 ...E..zG.l3..Q 00f0: ad 68 54 aa 35 77 39 ed 4b 90 6e ee 46 f3 e0 81 .hT.5w9.KnF.. ]
***
信頼できる証明書が見つかりました:
[
[
バージョン: V3
サブジェクト: CN="XXX, O=XXX, OU=VIL, C=IN"
署名アルゴリズム: SHA1withRSA、OID = 1.2.840.113549.1.1.5
キー: IBMJCE RSA公開鍵:
モジュラス:
29520274597059884884525162797844309564564740860314317076363623205590330620665285960098203994430649948452267736624734060083888254808645851791784899893187301774015459836549786877052861001494184226379092315448710377951407842057987341460256107051853392995727416012224181106667030239052484951915573460835538842193183692008554795370126435248099845779739150211076745709763656203626931710137691863377966754291466123511621939080200053832041159491199213401094161487450139611524627709969107242299349846233668554767700637296506799788156861380576834589242935902127652273390577803901208287815787363344752279450721968318806451327069
公開指数:
65537
有効性: [From: Tue Jan 17 12:36:21 IST 2017,
To: Sat Jan 13 12:36:21 IST 2018]
発行者: CN="XXX, O=XXX, OU=VIL, C=の"
シリアル番号: [1251192874879434500
]
アルゴリズム: [SHA1withRSA]
署名:
0000: 9c 7c 69 77 7b 26 59 e0 d3 10 0c d8 ae 10 b8 29 ..iw..Y........ 0010: 3d a8 3e 63 e5 e0 49 aa 73 71 14 68 a1 5e a8 c3 ...c..I.sq.h.... 0020: 8e 55 ca f2 2f b2 21 00 c9 ac 6f 6e 9a 36 6a 39 .U........on.6j9 0030: 51 68 62 e5 23 e6 49 4a 8f d0 f5 25 16 a0 37 d5 Qhb...IJ......7. 0040: a4 99 ed c4 84 73 61 23 88 76 e7 d4 8e 1b d9 f0 .....sa..v...... 0050: dd b8 e1 8f 21 c3 92 d7 8f b0 3c cc 42 98 17 50 .........B..P 0060: デシベル 09 27 f9 1f 8b c1 29 68 e4 66 00 e2 9e b2 d3 ........hf.... 0070: bd 98 8e 95 00 80 eb d1 3b cf 24 1a 86 ad 35 67 ..........5g 0080: 59 3a 3f e0 20 e7 f0 94 c6 4a 0c 5c 1a de 2b 22 Y........J...... 0090: 6f 1c cb 23 08 55 1c 61 72 29 14 d8 7c 7b bf 31 o....U.ar......1 00a0: 0d d3 0a 38 e1 98 af 65 e5 7d 0f 9c d5 a5 3f 00 ...8...e........ 00b0: f4 b1 dd 89 89 9b 57 42 46 80 a5 7e 30 62 bd cf ......WBF...0b.. 00c0: d5 4b d1 33 df 10 55 ac 3a 46 6e d0 e6 df 7c 35 .K.3..U..Fn....5 00d0: b1 c2 81 ef d0 7b 6d f3 cc ff d1 ea 40 9f 6e 6c ......m.......nl 00e0: 5d c6 8f 45 2a dd 7a 9d 47 de b4 6c 33 0d cf 51 ...E..zG.l3..Q 00f0: ad 68 54 aa 35 77 39 ed 4b 90 6e ee 46 f3 e0 81 .hT.5w9.KnF.. ]
*** CertificateRequest
証明書タイプ: RSA
証明書機関:
*** ServerHelloDone
ClientHandshaker: KeyManager com.ibm.jsse2.aw
*** 証明書チェーン
***
JsseJCE: KeyGenerator IbmTlsRsaPremasterSecret を使用 init
JsseJCE を介したプロバイダー TBD から: 暗号 RSA/ SSL/PKCS1Padding from provider TBD init
PreMasterSecret: Using cipher for wrap RSA/SSL/PKCS1Padding from provider from init IBMJCE version 1.8
*** ClientKeyExchange, RSA PreMasterSecret, TLSv1
main, WRITE: TLSv1 Handshake, length = 269
SESSION KEYGEN:
PreMaster Secret :
0000: 03 01 ca e5 e2 4f f5 ba fc e5 ef e7 f0 ce 11 41 .....O....A 0010: 1c 4f 8e b0 8b b0 1e 0f 25 96 85 a4 18 64 f4 22 .O....d.. 0020: ba 99 3c b2 08 64 b0 c0 0a 72 09 23 fe e8 67 48 .....d...r....gH
javax.crypto.spec.SecretKeySpec@13e668a
JsseJCE: IbmTlsMasterSecret の KeyGenerator を選択します。
JsseJCE: init 経由でプロバイダー TBD から KeyGenerator
IbmTlsMasterSecret を使用する JsseJCE: init 経由でプロバイダー TBD から KeyGenerator IbmTlsKeyMaterial を使用する
CONNECTION KEYGEN:
Client Nonce:
0000: 58 db 60 ea ee 89 59 80 8b 52 5d 77 0c 68 03 96 X.....Y..Rwh. 0010: 68 da 92 fc 6a e6 68 e3 dc c3 85 b1 e0 46 34 7f h...jh...F4.
サーバーナンス:
0000: 00 00 00 00 ec 58 97 5e 6f 09 a7 b9 5e 51 b5 94 .....X..o....Q.. 0010: bd 88 d4 71 d1 6d 0d c1 dd 7f ed 4b 6f 3a cb 82 ...qm....Ko...
マスターシークレット:
0000: 0a ca f1 d7 05 94 2e 07 1d 2a 27 bb e9 6a a2 dd .........j.... 0010: a1 70 32 ee 4c da 20 df c2 95 aa bd 2c e9 cd 02 .p2.L...................... 0020: 6b c7 17 9d bc 02 1f 22 31 a7 9b 78 ce 42 5b cf k.......1..xB.
クライアント MAC 書き込みシークレット:
0000: 5f 22 6c 73 aa 0c 89 b5 8c 55 f4 c2 2c 67 6a 83 ..ls.....U...gj. 0010: 56 c4 00 c6
V... サーバー MAC 書き込みシークレット:
0000: 3e d4 16 07 87 f4 75 73 bc 76 6a 78 2c 3e b5 3a ......us.vjx.... 0010: 4e 45 ad e9
NE.. クライアント書き込みキー:
0000: cd d0 2d 55 ca a3 62 92 78 13 a4 2d 9c 3a 79 a9 ...U..bx....y. 0010: 5b 3f 03 97 06 33 3d ff .....3..
サーバー書き込みキー:
0000: e1 e8 89 c1 85 f5 09 32 25 75 19 dd 62 7a b2 c9 .......2.u..bz.. 0010: 7f 63 ab 28 2d 6d 5d 45 .c...mE
クライアント書き込み IV:
0000: デシベル 7f 8f 71 11 c5 1e b3 ...q.... サーバー書き込み IV:
0000: 9c 74 e2 ae d6 62 56 3f .t...bV.
JsseJCE: init
HandshakeMessage を介したプロバイダー TBD からの KeyGenerator IbmTlsPrf の使用: init IBMJCE バージョン 1.8 メインからのプロバイダーからの TLS Keygenerator IbmTlsPrf
書き込み: TLSv1 暗号仕様の変更、長さ = 1
JsseJCE: init CipherBox によるプロバイダー TBD からの暗号 DESede/CBC/NoPadding の使用
: init IBMJCE
バージョン 1.8のプロバイダーからの暗号 DESede/CBC/NoPadding の使用 JsseJCE: init
MAC 経由でプロバイダー TBD から MAC HmacSHA1 を使用: プロバイダー IBMJCE バージョン 1.8 から MessageDigest HmacSHA1 を使用
*** 完了
検証データ: { 194, 19, 125, 188, 103, 19, 170, 48, 12, 172, 132, 24 } ***
main, WRITE: TLSv1 Handshake, length = 40
main, READ: TLSv1 Change Cipher Spec, length = 1
JsseJCE: プロバイダーからの暗号 DESede/CBC/NoPadding の使用 init
CipherBox による TBD CipherBox: プロバイダーからの暗号 DESede/CBC/NoPadding の使用from init IBMJCE
バージョン 1.8
JsseJCE: Using MAC HmacSHA1 from provider TBD via init
MAC: Using MessageDigest HmacSHA1 from provider IBMJCE version 1.8
main, READ: TLSv1 Handshake, length = 40
*** Finished
verify_data: { 0, 3, 116, 83, 135, 81, 160, 25, 151, 242, 17, 213 }
***
JsseJCE: init
HandshakeMessage 経由でプロバイダー TBD から KeyGenerator IbmTlsPrf を使用: init IBMJCE バージョン 1.8 のプロバイダーからの TLS Keygenerator IbmTlsPrf
%% キャッシュされたクライアント セッション: [Session-1, SSL_RSA_WITH_3DES_EDE_CBC_SHA]
メイン、メインと呼ばれる setSoTimeout(120000)
、書き込み: TLSv1 アプリケーション データ、長さ = 184
メイン、読み取り: TLSv1 アプリケーション データ、長さ = 64
メイン、書き込み: TLSv1 アプリケーション データ、長さ = 24
メイン、書き込み: TLSv1 アプリケーション データ、長さ = 48
メイン、close() と
呼ばれるメイン、closeInternal(true)
メインと呼ばれる、SEND TLSv1 ALERT: 警告、説明 = close_notify
メイン、書き込み: TLSv1 アラート、長さ = 24
メイン、呼び出されました closeSocket(true)
MQJE001: MQException が発生しました: 完了コード 2、理由 2009
MQJE016: MQ キュー マネージャーは、接続中にすぐにチャネルを閉じました クローズの理由 = 2009
MQJE001: MQException が発生しました: 完了コード 2、理由 2009
MQJE016: MQ キュー マネージャーは、接続中にすぐにチャネルを閉じました クローズの理由 = 2009
スレッド「メイン」での例外 com.ibm.mq.MQException: MQJE001: MQException が発生しました: 完了コード 2、理由 2009
MQJE016: MQ キュー マネージャーは、接続中にすぐにチャネルを閉じました クローズの理由 =
com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:212)
で 2009、com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:318)
でcom.ibm.mq.MQSimpleConnectionManager.allocateConnection( MQSimpleConnectionManager.java:168
)
で com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory
. java:772)
com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:697) で
com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:657)
で com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:153)
で com.ibm.mq.MQQueueManager.(MQQueueManager.java:451) で
com.apalya.main.MQTest.main(MQTest.java:129) で
原因: com.ibm.mqservices.MQInternalException: MQJE001: MQException が発生しました: 完了コード 2、理由 2009
MQJE016: MQ キュー マネージャーは、接続中にすぐにチャネルを閉じました 閉鎖理由 =
com.ibm.mq.MQv6InternalCommunications.checkControlFlags(MQv6InternalCommunications.java:740)
で
2009 .java:206)
com.ibm.mq.MQv6InternalCommunications.(MQv6InternalCommunications.java:102)
com.ibm.mq.MQSESSIONClient.MQCONNX(MQSESSIONClient.java:1337) com.ibm.mq.MQSESSIONClient.MQCONN(MQSESSIONClient
) .java:1246)
at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:184)
... 10 詳細
誰でもこれについて助けたり提案したりできますか