
配置WebSphereMQ(V5.3和V6.0)以接受SSL请求并答应非SSL连接。
配置WebSphereMQ以接受来自特殊顾客端的请求,在本例中为WebSphereApplicationServer。
配置WebSphereApplicationServer以应用更新的密码存储区。(因为WebSphereApplicationServer已经更改成不应用缺省缺省的密码存储区,则无需执行此流程。)无论WebSphereApplicationServer使用何种证书,都必须保证在WebSphereMQ的密码存储区中存在相应的签名者。
更新WebSphereApplicationServer的传闻传输配置以应用SSL。
检测结果。
根据图示使用流程进行操作,可快捷地确定ConnectionFactory、队列和JNDI命名设置是否正确,但这并不是强制的。
我们在本文中所应用的实例使用流程十分简单,即填写一条JMS消息并浏览队列内容。该使用流程包括在下载文档中。
我们的实例使用流程包括以上组件:
要安装图示使用流程,请执行以上流程:
更新MQ安装根目录函数。
启动使用服务器,并登陆到WebSphereApplicationServer管理控制台。
定位到Environment=>ManageWebSphereVariables。
编辑变量MQ_INSTALL_ROOT以使其指向MQSeries客户端的根目录,例如C:\ProgramFiles\WebSphereMQ。(有关配置WebSphere变量的具体资料,请参阅WebSphereApplicationServerInformationCenter。)
在WebSphereMQJMS提供流程下创建名为SendCF的ConnectionFactory,其JNDI名称为jms/SendCF。(保证在单元(cell)范围或与您的使用服务器结点相适应的范围下创建该资源。控制台中显示的缺省范围为部署管理器结点的范围。)这里的主要函数为:
因为没有为通道指定任何内容,则其缺省值为SYSTEM.DEF.SVRCONN。传输类型应更改为CLIENT。即使队列管理器与WebSphereApplicationServer运行在同一计算机上,您也必须应用客户端模式来进行通信,这是那么绑定模式并不支持SSL连接。(请参见图1和2。)




在队列管理器中创建数学队列FROMWASQ。
在队列管理器计算机上,确定队列管理器和侦听器早已启动。
应用runmqsc或WebSphereMQExplorer创建名为FROMWASQ的队列。通过WebSphereMQServices可察看到侦听器的状况和端口号。
在WebSphereApplicationServer中创建FROMWASQ管理的对象。在WebSphereMQJMS提供流程中创建名为FROMWASQ的队列,其JNDI名称为jms/destQ。基本队列名称为FROMWASQ(在MQ中的名称)。您无需输入任何其它函数。(请参见图3和4。)




安装使用流程。
从中安装JmsTestEAR.ear,应用使用流程安装向导,并接受一切选项的缺省设置。注意,如我们下面所定义的这样,缺省的绑定将jms/SendCFRef设置为jms/SendCFConnectionFactory,将jms/destQRef设置为jms/destQ队列。如果得到警告消息提示Theresourcesthatareassignedtotheapplicationarebeyondthedeploymenttargetscope,请忽视该传闻并单击Continue。
安装结束后,保留您的更改并再次启动服务器,以使配置更改生效。
检测使用流程
从Web浏览器中应用以上URL打开使用流程::9080/JmsTestWeb/BrowseAq.jsp。系统将表明出相似于图5的界面。该网页中表明FROMWASQ队列的内容,禁止您向该队列提交JMS消息。
选择SendaJMSMessage,然后确定消息发送成功,如图6所示。
选择BrowseInputQueue以察看队列的新内容。
该试验可检测应用WebSphereMQ作为JMS提供流程时WebSphereApplicationServer和WebSphereMQ之间的连通情况。




启用WebSphereApplicationServer全局安全性(因为尚未启用)。

本文的其他部份将应用在DefaultSSLSettingsSSL指令表中概念的密码和信赖存储区。当WebSphereApplicationServerNetworkDeployment(ND)环境中启用了WebSphereApplicationServer全局安全性时,才能用到其他密钥和信赖存储区。要启用全局安全性,请参阅WebSphereApplicationServerInformationCenter。
因为您不是在WebSphereApplicationServerND环境中检测该使用流程,则才能设置以上JVM自定义属性,以指向在本文前面定义的密码和信赖存储区:
请参阅UsingtheJavaSecureSocketExtensioninWebSphereApplicationServer以了解该设置的必要性。
在我们年的实例中,WebSphereApplicationServer为SSL握手中的“顾客端”,而WebSphereMQ则为“服务器”。对于WebSphereMQ服务器证书,我们将从VeriSign获得名为ibmwebspheremqqm_example的试用证书。对于WebSphereApplicationServer,我们则应用一个自签订证书,名为jmsclient。我们将同样进行服务器和顾客端的身份验证。客户端身份验证将保证只有这些能说明其身份的顾客端(在本例中仅为WebSphereApplicationServer)需要联接到队列管理器。如果不进行顾客端身份验证,则网络上的任何使用流程都可以从WebSphereMQ队列管理器中填写或接收消息。
下表列举了我们将在每位节点上增设的密码存储库及其所包括的部件:
部署管理器使用服务器WMQ队列管理器
密码存储区
信任存储区
密码存储区
信任存储区
组合密码存储区/信任存储区
请留意:
对于本例中的WebSphereApplicationServer,应用信任存储区来验证(密钥),而应用密码存储区来验证密码(密钥/密码对)。在本例中,我们将应用DefaultSSLSettings指令表(配置),但会更改密码存储区和信赖存储区的缺省名称。DummyServerKeyFile和DummyServerTrustFile中包括的是对一切WebSphereApplicationServer安装通用的实例服务器密码,不能用来销售环境中。
在不同位置上,WebSphereApplicationServer部署管理器和结点代理通过SSL连接进行相互通信。如所希望的这样,当顾客端打开到服务器的连通时(WebSphereApplicationServer缺省情况下不应用客户端身份验证),将执行服务器身份验证。例如,当部署管理器访问某个结点代理时,结点代理向部署管理器提供证书(jmsclient),部署管理器按通常方法对照其信赖存储区来验证证书(详细来说,它将查找jmsclient签名者)。这就是为什么我们要更新WebSphereApplicationServer密钥环以保证这些在初次握手期间一直希望正常工作的因素。
WebSphereMQSSL握手流程:
当初始化JMS连接工厂时,WebSphereApplicationServer打开到WebSphereMQ的SSL连接,这将发送其jmsclient证书。
WebSphereMQ队列管理器应用队列管理器密码存储区中的jmsclient公钥对WebSphereApplicationServer的顾客端证书进行验证。
WebSphereMQ使用通道中的SSLPEER属性来检测其能接受的顾客端证书专用名称(DN)值。在本例中,WebSphereApplicationServer客户端证书匹配DNcn=jmsclient、ou=ISSW、o=IBM和c=US(在SSLPEER属性中列举,所以它是WebSphereMQ的可靠身份)。如果没有增设SSLPEER,则WebSphereMQ可接受VeriSign试用CA所签发的任何其它顾客端证书。
队列管理器将由VeriSign试用CA所签发的服务器证书发送给WebSphereApplicationServer。
WebSphereApplicationServer接收到WebSphereMQ服务器证书后,在其信赖存储区内进行查找,并应用VeriSign试用CA证书来验证该服务器证书。如果在WebSphereApplicationServer连接工厂中增设了SSL对等方名称,则它必须同WebSphereMQ证书的DN匹配。
SSL握手到此完成。
如左边所提及的,我们将应用从VeriSign获得的演示证书来进行WebSphereMQ服务器身份验证,而应用自签订证书来进行顾客端身份验证。
证书保存在不同的储存库中,这取决于详细的操作功能和访问工具。我们应用IBM密钥管理工具ikeyman,该工具可用来证书的储存和查询。
VeriSign是提供演示证书的颁发机构。接下来,我们将借助一系列流程来为WebSphereMQ队列管理器获取。(因为您已具备队列管理器证书,可继续使用并跳至。
要从VeriSign获取演示证书,您必须首先合成证书签名请求(CSR)。有关怎么合成CSR的证明,可在VeriSign网站上寻找,同样在WebSphereApplicationServer中也多次进行了介绍。注意,我们计算您安装的是WebSphereApplicationServerNetworkDeployment,如果您的缺省密钥存储区的行为应该有所不同。(有关更多资料,请参阅UsingtheJavaSecureSocketExtensioninWebSphereApplicationServer)。
打开WebSphereMQExplorer并光标单击IBMWebsphereMQ,然后选择ManageSSLCertificates,因而启动密码管理工具ikeyman。
我们将应用缺省的密码位置:<mqroot>\Qmgrs\<qmgrname>\ssl。其缺省名称为key.kdb。选择KeyDatabaseFile=>New可创建密码文件。
接受缺省的CMS密钥类型。
对于密码位置,可浏览至<mqroot>\Qmgrs\<qmgrname>\ssl\目录并将该文档命名为key.kdb(图7)。


单击OK,出现提示后输入正确的密钥。选择将密钥隐藏在在文档中的选项。
选择Create=>NewCertificateRequest。系统将表明“CreateNewKeyandCertificateRequestpanel”面板。(图8)。
输入密码标签名称值,如:ibmwebspheremq<yourqmgrname_inlowercase>。这将成为证书名称。再为“CommonName”(您的主机+域名)、“Organization”还有其它记号为可选的函数输入对应的值。您可应用缺省密钥大小(1024)。输入文档名并保留请求,如果保存缺省名称certreq.arm。如果您应用的是WebSphereMQV6,则证书标签名称必须遵循此约定,如果队列管理器将不明白您应用哪一种服务器证书。


但是该工具将这些函数列为可选,但这些对VeriSign而言是必须提供的。如果没有提供各种函数值,您认为得到错误消息,例如:Error9508-CertificateSigningRequestcontainsemptyfield(s)。(您认为还需要提供省/市/自治区的名称。如果输入诸如TX之类的州名称,应该会被VeriSign视作无效,这时您将接收到错误消息ThestatevalueusedinthesubmittedCSRisnotvalid。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-118929-1.html
并应对任何可能出现的问题