在 WebSphere MQ 和 WebSphere Message Broker 之间建立基于 SSL 的通信.docx
《在 WebSphere MQ 和 WebSphere Message Broker 之间建立基于 SSL 的通信.docx》由会员分享,可在线阅读,更多相关《在 WebSphere MQ 和 WebSphere Message Broker 之间建立基于 SSL 的通信.docx(52页珍藏版)》请在冰豆网上搜索。
在WebSphereMQ和WebSphereMessageBroker之间建立基于SSL的通信
开始之前
本教程展示如何在z/OS上使用MQSSL和MicrosoftWindows在WebSphereMQ和WebSphereMessageBroker产品之间建立基于SSL的通信。
本教程还将展示如何检查SSLCipherSpecification(SSLCIPH)的各种组合,以及诸如无效证书和过期证书之类的错误场景。
我们使用z/OS平台上的面板执行这些任务,这些面板使那些不熟悉z/OS的用户能够轻松完成这些任务。
在本文末尾,我们列示了z/OS上的所有RACF命令(如创建一个密匙环,将证书添加到密匙环等)。
对于在z/OS平台上建立MQSSL,这些命令可以执行与z/OS上的面板相同的操作。
目标
在z/OS队列管理器上建立MQSSL
在z/OS队列管理器和WebSphereMessageBroker工具包之间建立单向SSL通信
在z/OS队列管理器和WebSphereMessageBroker工具包之间建立双向SSL通信
展示各种SSLCIP组合的SSL通信
展示无效SSLCIPH组合、无效证书和过期证书的错误场景
先决条件
您应该熟悉:
z/OS基础知识
z/OS上的各种面板(ISPF、RACF等)的用途
IBMWebSphereMQ
IBMWebSphereMessageBroker(运行时和工具包)概念
比较熟悉MicrosoftWindows上的SSL
系统要求
要执行本教程中的任务,您需要:
一台MicrosoftWindows机器
IBMWebSphereMQV6或更高版本
IBMWebSphereMessageBrokerV6或V6.1
IBMWebSphereMessageBrokerToolkitV6或V6.1
安装了RACF的z/OSLPAR
时间
2小时
关键字和定义
为方便起见,本小节提供来自MQ信息中心的一些关键术语定义。
SSL(SecureSocketsLayer,安全套接字层)
SSL是一个工业标准协议,它在应用程序协议和通信层之间提供一个数据安全层,通常是TCP/IP。
SSL使用加密技术、数字签名和数字证书,在客户端和服务器之间提供消息隐私、消息完整性和相互验证。
MQSSL
在WebSphereMQ中,您可以对两个队列管理器之间的通信使用SSL,每个队列管理器都将使用一个数字证书。
SSLCIPH(SSLCipherSpecification,SSL密码规范)
SSLCIPH为一个SSL连接定义单个CipherSpec。
一个WebSphereMQSSL通道的两端都必须包括这个属性,SSLCIPH值必须在通道的两端指定相同的CipherSpec。
该值是一个字符串,最大长度为32个字符。
这个属性并不是对所有通道类型都有效。
它只对传输类型(TRPTYPE)为TCP的通道有效。
如果TRPTYPE不是TCP,将忽略数据且不发送错误信息。
SSLCIPH是一个可选属性。
SSLCAUTH(SSLClientAuthentication,SSL客户端验证)
SLCAUTH用于定义通道是否需要接收和验证来自一个SSL客户端的SSL证书。
可能的值包括:
OPTIONAL——如果对等SSL客户端发送一个证书,则该证书被正常处理;如果该客户端不发送任何证书,验证并不失败。
REQUIRED——如果SSL客户端不发送证书,验证失败。
默认值是REQUIRED。
您可以在一个非SSL通道定义上指定一个SSLCAUTH值,非SSL通道上没有或缺失SSLCIPH。
您可以使用这种方法临时禁用SSL以便调试,无需先清除SSL参数然后再重新输入这些参数。
这个属性对可以接收一个通道初始化流的所有通道有效,发送器通道除外。
这个属性对以下通道类型有效:
*Server
*Receiver
*Requester
*Serverconnection
*Clusterreceiver
SSLPEER(SSLPeer,SSL对等)
SSLPEER属性用于检查来自对等队列管理器或客户端(位于WebSphereMQ通道的另一端)的证书的DistinguishedName(DN)。
如果从对等SSL接收的DN与SSLPEER值不匹配,通道将不会启动。
SSLPEER是一个可选属性。
如果不指定属性值,通道启动时将不检查对等DN。
在z/OS上,该属性的最大长度是256字节,其他平台上是1024字节。
在z/OS上,将不会对这个属性值进行检查。
如果您输入错误的值,通道在启动时失败,错误消息写入通道两端的错误日志。
通道两端还将生成一个ChannelSSLError事件。
在支持SSLPEER的平台(除z/OS®外),字符串的有效性在首次输入时检查。
您可以在一个非SSL通道定义上指定一个SSLCAUTH值,非SSL通道上没有或缺失SSLCIPH。
您可以使用这种方法临时禁用SSL以便调试,无需先清除SSL参数然后再重新输入这些参数。
假设
以下小节提供在WebSphereMessageBrokerToolkit(Windows)和z/OS上的WebSphereMQ队列管理器之间建立一个MQSSL连接的步骤和屏幕截图。
假设1:
队列管理器已建立并正在运行,通道初始化程序正在运行。
SSL设置还没有激活。
假设2:
在本教程中,我们对队列管理器MA01和MA02分别使用两个用户ID:
MA01USR和MA02USR。
这些用户ID需要访问RACDERT命令。
咨询您的系统管理员,您要使用的用户ID是否能够访问RACDERT命令。
在下面的小节中,您将学习如何创建一个密匙环。
密匙环可以视为存储数字证书的存储库。
这些证书用于确定客户端系统是否可以信任。
创建一个密匙环
选择选项R(RACF)(如图1所示)并按下Enter键。
图1.WMQIChangeTeamMenu
选择选项7(DIGITALCERTIFICATESANDKEYRINGS)(如图2所示)并按下Enter键。
图2.ServicesOptionMenu
选择选项6(KeyRingServices)(如图3所示)并按下Enter键。
图3.ServicesOptionMenu
选择选项1(Createanewkeyring),在Foruser字段中输入用户名(这里是MA01USR,如图4所示),然后按下Enter键。
图4.DigitalCertificateKeyRingServices
输入MA01作为密匙环的名称(如图5所示)并按下Enter键。
图5.DigitalCertificateKeyRingName
图6展示了成功创建并添加到RACFDatabase的密匙环。
图6.确认密匙环已经添加
按下F3键,直到返回主菜单。
在下一个小节中,您将学习使用RACF创建一个CA证书。
创建一个客户端验证(CA)证书
选择选项1(Generateacertificateandapublic/privatekeypair)(如图7所示)并按下Enter键。
图7.DigitalCertificatesandRelatedServices
输入X以请求一个CA证书(如图8所示)并按下F8键(F8是向下滚动功能键)。
图8.生成一个DigitalCertificate
输入First.M.Last作为CommonName,SoftwareEngineer作为Title以及MVS作为OrganizationalUnit(如图9所示):
图9.生成一个DigitalCertificate(更多选项)
输入这个CA证书的startdate/time和enddate/time的值(如图10所示),这些值基本上表明证书的有效性。
输入“CA01”作为这个CA证书的Labelname并按下F8键。
图10.生成一个DigitalCertificate(更多选项)
输入一个X作为选项Certsign(如图11所示)。
如果没有出现错误消息,那么这个CA证书已成功创建并添加到RACF数据库。
图11.生成一个DigitalCertificate(更多选项)
要列示CA证书CA01,选择选项4(如图12所示)并按下Enter键。
图12.DigitalCertificates和RelatedServices
在ForCertificateType字段中的CertificateAuthority下输入一个X,然后选择选项3(如图13所示)并按下Enter键。
图13.DigitalCertificateServicesMainPanel
输入CA01作为证书的标签并选择选项1(如图14所示),然后按下Enter键。
图14.DigitalCertificateListFilteringPanel
图15显示了证书CA01的内容,按下F8显示更多证书细节。
图15.ChangeStatus/DeleteDigitalCertificate
在下一小节中,您将学习创建一个由CA证书签署的个人证书。
这个签署CA证书是您在上一小节创建的,标签为CA01。
创建一个个人证书
选择选项1(如图16所示)并按下Enter键。
图16.DigitalCertificatesandRelatedServices
输入任意个人用户ID以生成一个个人证书。
选择CertificateAuthority作为SigningCertificatetype,输入CA01作为Label(如图17所示)。
按下F8向下滚动。
图17.生成一个DigitalCertificate
输入MAO1.PERSONAL作为您选择的CommonName(如图18所示),按下F8键向下滚动。
图18.生成一个DigitalCertificate(更多选项)
在Label字段中输入个人证书的名称。
常用的格式是ibmWebSphereMQXXXX,其中XXXX代表4个字母的队列管理器名。
选择选项Handshake(如图19所示)并按下Enter键。
图19.生成一个DigitalCertificate(更多选项)
连接证书和密匙环
下面需要将CA证书和个人证书添加到密匙环,因为当队列管理器执行与客户端系统的SSL“握手”时,将检查密匙环中的证书列表。
将CA证书CA01连接到密匙环MA01
在本小节中,您将学习将CA证书连接(添加)到密匙环。
选择选项6(Create,List,orDeleteanentirekeyringorConnectorRemoveacertificateto/fromakeyring)(如图20所示)并按下Enter键。
图20.DigitalCertificatesandRelatedServices
选择选项4以将一个数字证书连接到一个密匙环(如图21所示)并按下Enter键。
图21.DigitalCertificateKeyRingServices
输入密匙名称MA01并选择CertificateAuthority选项作为CertificateType,输入CA01作为Labelname,选择CertificateAuthority作为Usage证书(如图22所示)并按下Enter键。
图22.将数字证书连接到密匙环
图23显示CA证书CA01已经成功连接到密匙环MA01。
图23.DigitalCertificateKeyRingServices
在下一小节中,您将学习将个人证书连接(添加)到密匙环。
将个人证书ibmWebSphereMQMA01连接到密匙环MA01
输入创建个人证书的用户ID(MA01USR)并选择选项4(Connectadigitalcertificatetoakeyring)(如图24所示)并按下Enter键。
图24.DigitalCertificateKeyRingServices
输入密匙环名称MA01,输入用户IDMA01USR作为CertificateType(因为这是一个个人证书)。
下面输入ibmWebsphereMQMA01作为Labelname,选择Personal作为Usage字段(如图25所示)并按下Enter键。
图25.将数字证书连接到密匙环
图26显示个人证书ibmWebsphereMQMA01已经成功连接到密匙环MA01。
图26.DigitalCertificateKeyRingServices
在下一小节中,您将学习如何列示连接(添加)到密匙环的所有证书。
列示连接到密匙环的证书
选择选项3(Listexistingkeyring(s)),输入MA01USR作为用户ID(如图27所示)并按下Enter键。
图27.DigitalCertificateKeyRingServices
输入密匙环名称MA01(如图28所示)并按下Enter键。
图28.DigitalCertificateListKeyRingServices
图29显示所有连接到密匙环MA01的证书。
图29.列示密匙环名称
清单1展示了通道初始化程序(MA01CHIN))日志的一个代码段。
注意变量SSLTASKS(=0)和SSLKEYR(='')的值和消息“0SSLserversubtasksstarted,0failed”,该消息表明队列管理器还没有准备好进行SSL通信。
还应注意表明位于端口地址1501的监听器已经启动的消息。
清单1.通道初始化程序(MA01CHIN)日志的一个代码段
CSQX080I MA01 CSQXGIP SSLTASKS=0, SSLRKEYC=0
CSQX081I MA01 CSQXGIP SSLKEYR=
CSQX082I MA01 CSQXGIP SSLCRLNL=
CSQX085I MA01 CSQXGIP LU62CHL=200, LUGROUP= ,
LUNAME= , LU62ARM=
CSQX090I MA01 CSQXGIP TCPCHL=200,
TCPKEEP=NO, TCPNAME=TCPIP
CSQX091I MA01 CSQXGIP TCPSTACK=SINGLE, IPADDRV=IPV4
CSQX092I MA01 CSQXGIP OPORTMIN=0, OPORTMAX=0
CSQX093I MA01 CSQXGIP DNSWLM=NO, DNSGROUP=
CSQX094I MA01 CSQXGIP RCVTIME=0,
RCVTTYPE=MULTIPLY, RCVTMIN=0
CSQX011I MA01 CSQXGIP Client attachment feature available
CSQX141I MA01 CSQXADPI 8 adapter subtasks started, 0 failed
CSQX151I MA01 CSQXSSLI 0 SSL server subtasks started, 0 failed
CSQX410I MA01 CSQXREPO Repository manager started
CSQX015I MA01 CSQXSPRI 5 dispatchers started, 0 failed
CSQX022I MA01 CSQXSUPR Channel initiator initialization complete
CSQX251I MA01 CSQXSTRL Listener started,
TRPTYPE=TCP INDISP=QMGR
CSQX023I MA01 CSQXLSTT Listener started,
port 1501 address *,
提取CA证书
现在,队列管理器拥有了一个证书。
当Toolkit(作为一个MQClient)连接时,队列管理器向Toolkit出示该证书。
要验证队列管理器的证书,Toolkit需要CA证书。
在此之前,为用户ID(WebSphereMessageBrokerToolkit使用此用户ID启动)创建一个配置管理器并定义一个ACL条目。
按照以下步骤将CA文件提取到一个物理序列(PS)文件中:
使用如图30所示的参数创建一个PS文件,该文件将用于提取CA证书CA01。
图30.DataSetInformation
选择选项3(Writeacertificatetoadataset)(如图31所示)并按下Enter键。
图31.DigitalCertificatesandRelatedServices
由于CA证书将传递到Windows机器,选择选项CertificateAuthority作为CertificateType(如图32所示)。
输入标签名CA01并输入将在其中保存提取的证书的数据集名。
选择选项Base64encodedX.509certificate,这是提取的证书的默认格式类型。
按下Enter键。
图32.将证书写入DataSet
使用ISPF3.4选项,您可以查看提取的证书。
清单2显示了提取的证书CA01的内容。
清单2.CA证书CA01的内容
********************************* Top of Data **********************************
-----BEGIN CERTIFICATE-----
MIICfTCCAeagAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMQwwCgYDVQ
QLEwNNVlMxGjAYBgNVBAwTEVNvZnR3YXJlIEVuZ2luZWVyMRUwEwYDV
QQDEwxGaXJzdC5NLkxhc3QwHhcNMDkwMzI5MTgzMDAwWhcNMTAwMz
MwMTgyOTU5WjBBMQwwCgYDVQQLEwNNVlMxGjAYBgNVBAwTEVNvZn
R3YXJlIEVuZ2luZWVyMRUwEwYDVQQDEwxGaXJzdC5NLkxhc3QwgZ8w
DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMUbsc1Z5TNBP0GIGcWvSJZ
2Mh7WV3lsbA80z9KeXKEI+pHwePrKttk3Xbz3EHwk6ImiaFlMEdwdfCaib5/I
5chXa5qXrQRknpMywCBvbBYvnX0IK/eX2OushIIxOecDoCdejNZPucq2qjc
bhKX5kXqvE0CeMxUWoZJWBcbcVwEjAgMBAAGjgYQwgYEwPwYJYIZIAYb
4QgENBDITMEdlbmVyYXRlZCBieSB0aGUgU2VjdXJpdHkgU2VydmVyIGZv
ciB6L09TIChSQUNGKTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BA
UwAwEB/zAdBgNVHQ4EFgQUhc9SF6OS/fmxfZhbWeyXiKPg6dUwDQYJKo
ZIhvcNAQEFBQADgYEAceSBdwf6cU6vc/O63WE8E6kB/lY1XLwSIWefEa6L
MicJHu+sbgsf/tRTu8L47D/wbo7JEEoCV3kYWvkFV3QasjFmCch9MfR0SP
FKXmUpcLPVtaHTyb+gSvCe5ZaOeCDlxbp2SZpNdKF2r2OLmhrssfAuNIa
+fE5l9Ed3nIMrpTE=
-----END CERTIFICATE-----
******************************** Bottom of Data ********************************
将CA证书文件传输到WindowsToolkit的存储库
按照以下步骤将CA证书文件传输到Windows:
使用WindowsExplorer或命令提示创建一个目录C:
MQSSLMA01:
C:
>md MQSSL
C:
>cd MQSSL
C:
MQSSL