Sun Java System Message Queue 3.7 UR1 管理指南

步骤 5:配置 HTTPS 连接

客户端应用程序必须使用正确配置的连接工厂受管理对象才能建立与代理的 HTTPS 连接。

但是,客户端还必须能够访问 Java 安全套接扩展 (Java Secure Socket Extension, JSSE) 提供的 SSL 库,并且还必须有一个根证书。SSL 库是随 JDK 1.4 一起提供的。如果您使用的是早期版本的 JDK,请参见配置 JSSE;否则,请参见导入根证书

解决上述问题后,即可开始配置 HTTPS 连接。

配置 JSSE

Procedure配置 JSSE

  1. 将 JSSE .jar 文件复制到 JRE_HOME/lib/ext 目录。


    jsse.jar, jnet.jar, jcert.jar
  2. 静态添加 JSSE 安全服务提供者,方法是将


    security.provider.n=com.sun.net.ssl.internal.ssl.Provider

    添加到 JRE_HOME/lib/security/java.security 文件(其中 n 是安全服务提供者软件包的下一个可用优先级编号)。

  3. 如果您使用的不是 JDK1.4,则需要在启动客户端应用程序的命令中使用 -D 选项来设置下面的 JSSE 属性:


    java.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol

导入根证书

如果签署 Web 服务器证书的 CA 的根证书默认情况下不在信任数据库中,或者您使用的是专用的 Web 服务器/应用程序证书,则必须将该证书添加到信任数据库中。 如果存在上述情况,请按照下面的说明执行操作;否则,请转到配置连接工厂

假定证书保存在 certFile 中,且 trustStoreFile 是您的密钥库,请运行以下命令:

JRE_HOME/bin/keytool -import -trustcacerts
 -alias aliasForCertificate -file certFile

-keystore trustStoreFile

对显示的如下问题回答 YESTrust this certificate?

此外,还需要在启动客户端应用程序的命令中使用 -D 选项来指定以下 JSSE 属性:

javax.net.ssl.trustStore=trustStoreFile
javax.net.ssl.trustStorePassword=trustStorePasswd

配置连接工厂

要启用 HTTPS 支持,必须将连接工厂的 imqAddressList 属性设置为 HTTPS 隧道 Servlet URL。 HTTPS 隧道 Servlet URL 的一般语法如下:

https://hostName:portNumber

/contextRoot/tunnel

其中 hostName:portNumber 是作为 HTTPS 隧道 Servlet 宿主的 Web 服务器的名称和端口,而 contextRoot 是在该 Web 服务器上部署隧道 Servlet 时设置的路径。

有关连接工厂属性,特别是有关 imqAddressList 属性的详细信息,请参见 Message Queue Developer's Guide for Java Clients

可以使用以下方法之一设置连接工厂属性:

使用一个 Servlet 访问多个代理

如果正在运行多个代理,您不必配置多个 Web 服务器和多个 Servlet 实例。 可以在并发运行的多个代理之间共享一个 Web 服务器和一个 HTTPS 隧道 Servlet 实例。如果多个代理实例共享一个隧道 Servlet,则必须如下所示配置 imqAddressList 连接工厂属性:

https://hostName:portNumber

/contextRoot/tunnel?ServerName=
bkrHostName:instanceName

其中 bkrHostName 是代理实例主机名,instanceName 是您希望客户端访问的特定代理实例的名称。

要查看是否为 bkrhostName instanceName 输入了正确的字符串,可以通过从浏览器访问 Servlet URL 来生成 HTTPS 隧道 Servlet 的状态报告。 状态报告将列出 Servlet 正在访问的所有代理:


HTTPS tunnel servlet ready.
Servlet Start Time : Thu May 30 01:08:18 PDT 2002
Accepting secured connections from brokers on port : 7674
Total available brokers = 2
Broker List :
   jpgserv:broker2
   cochin:broker1

使用 HTTP 代理

如果使用 HTTP 代理访问 HTTPS 隧道 Servlet:

可以通过在启动客户端应用程序的命令中使用 -D 选项来设置这些属性。