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“,只要不填值,就不会有错误。
本文档详细介绍了MQ7.5环境下SSL配置步骤,包括密钥库的创建、自签名证书的生成与导出、客户端证书的创建及导入等过程,并提供了解决SSL握手时出现的无效属性错误的方法。

4515

被折叠的 条评论
为什么被折叠?



