JMS 使用SSL 连接Websphere MQ出现的问题 WIN7平台

本文档详细介绍了MQ7.5环境下SSL配置步骤,包括密钥库的创建、自签名证书的生成与导出、客户端证书的创建及导入等过程,并提供了解决SSL握手时出现的无效属性错误的方法。

MQ7.5的密钥库的创建

下面简单说明建立MQ密钥库的过程,更详细的说明请看http://pic.dhe.ibm.com/infocenter/wmqv7/v7r5/index.jsp?topic=%2Fcom.ibm.mq.doc%2Fmi67594_.htm

1,管理员启动命令行,输入strmqikm,启动编辑密钥库的图形界面

2,点击“密钥数据库文件”->“新建",然后选择CMS,新建一个CMS类型的密钥库,输入密码后在第二个复选框打对号

3,新建自签名证书,输入密钥标签为ibmwebspheremq<队列管理器名>,例如队列管理器qm1的密钥标签是ibmwebspheremqqm1

4,导出服务器证书,点击最右下角的抽取证书,输入正确的路径,点确定


5,JMS客户端新建证书命令:keytool -genkey -v -alias ibmwebspheremqclient -keyalg RSA -keystore ./client_ks -dname "CN=ming,OU=cn,O=cn,L=cn,ST=cn,C=cn" -storepass client -keypass client

6,导出客户端证书,命令:keytool -export -alias ibmwebspheremqclient -keystore ./client_ks -file client_key.cer

7,把第4步导出的服务器证书导入客户端密钥库:keytool -import -trustcacerts -alias ibmwebspheremqqm2 -file <服务器证书> -keystore ./client_ks 。

8,把第6步导出的客户端证书导入到服务器密钥库。方法是选择strmqikm程序界面的密钥数据库内容下面的下拉框,选择签署者证书,然后选择右排最上面的添加按钮,添加客户端证书。


9,修改原有的JMS程序,添加SSL功能。增加如下代码

        System.setProperty("javax.net.ssl.trustStore", CLIENT_KEY_STORE);
        System.setProperty("javax.net.ssl.keyStorePassword", CLIENT_KEY_STORE_PASSWORD);

        System.setProperty("javax.net.debug", "ssl,handshake");

MQEnvironment.sslCipherSuite = "SSL_RSA_WITH_RC4_128_MD5";

SSL_RSA_WITH_RC4_128_MD5与服务器通道的RC4_MD5_US对应


上面只列出了主要的过程。我遇到的问题是在SSL握手时,出现了SSL无效属性的错误,

Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2397;AMQ9771: SSL 无效属性 OID.2.5.4.17……(这个错误提示是印象写的,不准确)

错误的原因是MQ客户端jar包,不能解析OID2.5.4.17这个名称,OID在证书的subject和Issuer域中,

Issuer: CN=ming-PC, OU=2, O=1, L=3, ST=4, OID.2.5.4.17=5, C=AD

Subject: CN=ming-PC, OU=2, O=1, L=3, ST=4, OID.2.5.4.17=5, C=AD

之所以会出现OID.2.5.4.17=5这个值,是因为在上面第3步创建自签名证书时在邮政编码那个输入框里填了”5“,只要不填值,就不会有错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值