下表提供了有关在配置 IMS TM
资源适配器、IMS Connector for Java™ 和 IMS Connect for SSL 的过程中应遵循的步骤的高级描述。
SSL 客户机 (IMS Connector
for Java) |
SSL 服务器 (IMS Connect) |
|
1. 决定是否需要进行客户机认证。如果不需要进行客户机认证,则跳至步骤 5。 注: 强烈建议您使用客户机认证来保护 IMS Connect 免遭未经授权的访问。
|
2. 如果需要进行客户机认证,则应获得已签名的证书和专用密钥。 |
|
3. 如果需要进行客户机认证,则应创建密钥库并插入客户机的专用密钥和证书。有关更多详细信息,请参阅下面的描述。 |
|
|
4. 如果需要进行客户机认证,则应将客户机的公用密钥证书插入密钥环中。有关更多信息,请参阅 IMS Connect User's Guide(SC27-0946-03)。 |
5. 创建信任库(另一个可选密钥库),并插入服务器的公用密钥证书。另外,如果信任证书和非信任证书存储在同一个密钥库中,则将服务器的公用密钥证书插入到客户机的密钥库中。 |
|
|
6. 决定使用哪个 IMS
Connect SSL 端口。为 IMS
Connect 和 SSL 配置成员设置适当的值。有关设置这些配置成员的更多信息,请参阅 IMS Connect User's Guide(SC27-0946)。 |
7. 为连接工厂设置适当的 SSL 参数,包括步骤 6 中提供的端口号。有关更多详细信息,请参阅下面的描述。 |
|
8. 将应用程序绑定至 SSL 连接工厂。 |
|
为客户机创建密钥库或信任库
为了让客户机与服务器之间互相进行认证,必须在客户端和服务器端都为 JKS 密钥库或 RACF
®
密钥环提供有效的 X.509 证书。如果服务器不需要执行客户机认证,也就不需要创建客户机证书并将其添加至服务器的密钥库或密钥环中。某些工具可用于管理密钥库。要在客户端和服务器端都提供 JKS 密钥库,必须执行下列步骤:
- 要设置客户机 IMS Connector for Java,请创建一个证书并使认证中心(例如,VeriSign)为其签名,或者使用诸如 OpenSSL 的软件创建您自己的认证中心(CA)以便为您自己的(自签名的)证书进行签名。
- 要创建密钥库,请使用密钥管理工具,例如,Ikeyman 或 Keytool。创建密钥库之后,如果有客户机证书可用,则将其导入密钥库中。
- 要创建信任库,创建另一个密钥库并导入服务器(IMS
Connect)的证书。注意:如果您只想创建一个密钥库,则将服务器的证书导入到用来存储客户机证书的密钥库中。请查阅
RACF
文档以了解有关创建 RACF
密钥环以用作密钥库或信任库的指南。
SSL 配置
通过确保 Java
客户机应用程序使用的连接工厂的 SSL 属性具有适当值,创建
Java
客户机应用程序与 IMS
Connect 之间的安全 SSL 连接。有关 SSL 属性值的描述,请参阅连接属性。
以
IBM 的 WebSphere® 和 Rational® 产品为例,可以使用多种方法来设置 SSL 属性:
- 如果在集成开发环境(IDE)(例如,Rational
Application Developer 或 WebSphere
Integration Developer)内部的测试环境中运行 Java
客户机应用程序,则可以使用 IDE 中的工具或测试环境的管理控制台。对于在集成 WebSphere
Application Server 上安装的 Java 客户机应用程序中的连接工厂资源引用,将其映射或绑定到该集成 WebSphere Application Server 中另外部署的 SSL 配置连接工厂,其方法是设置资源引用中连接工厂的 JNDI 名称。
- 如果您在 WebSphere
Application Server 中运行 Java
应用程序,则可以配置连接工厂,以便它将通过设置与 SSL 相关的属性(在
WebSphere
Application Server 的“J2C 连接工厂的定制属性”中)的适当值来创建 SSL 值。要设置连接工厂的定制属性,请在
WebSphere
Application Server 管理控制台中浏览至资源 > 资源适配器 > myIMSTMResourceAdapter > J2C 连接工厂 > myJ2CConnectionFactory > 定制属性。然后,将 Java 客户机应用程序中的连接工厂资源引用映射至 SSL 连接工厂,其方法是在应用程序 > 企业应用程序 > myApplication > 将资源引用映射至资源中指定目标连接工厂的 JNDIName。
下图显示了“J2C 连接工厂定制属性”属性表:
用于配置 IMS
连接工厂的其他有用信息可在
IMS 连接工厂属性中找到。
注意:可以在 WebSphere
Application Server 生成的 trace.log 文件中找到参考消息和警告。请参阅使用 IMS TM 资源适配器进行记录和跟踪以了解有关
IMS Connector for
Java
记录和跟踪的信息。
在运行时,当 Java
客户机应用程序执行与 IMS
的交互时,交互将在 SSL 客户机 IMS Connector
for Java
与 SSL 服务器 IMS Connect
之间的安全(SSL)连接上进行传递。要在客户机与服务器之间打开 SSL 连接,则将发生 SSL 握手过程。此 SSL 握手对于
Java 客户机应用程序是透明的,过程如下:
- SSL 客户机 IMS Connector for Java
通过发送 Client Hello 来启动连接。服务器 IMS
Connect 将以 Server Hello 以及包含其公用密钥的证书作为应答。
- 如果服务器成功认证了此证书,则将在两端建立会话密钥,并协商密码规范以确定要在连接上使用的加密类型。加密类型可为
STRONG、WEAK 或 ENULL。这样就完成了 SSL 握手。
- 如果服务器确实需要客户机认证,则客户机将使用服务器证书中的公用密钥来认证服务器证书。如果此认证成功,就从客户机的密钥库中发送客户机证书。如果服务器成功认证了此证书,则将在两端建立会话密钥,并协商密码规范以确定要在连接上使用的加密类型。这样就完成了 SSL 握手。
- 现在,客户机和服务器都可以发送和接收加密数据了。
必须注意的是,当在受管环境中运行应用程序(在使用 SSL 连接时,由于 SSL 握手过程将产生开销,因此强烈建议这样做)时,IMS TM
资源适配器仅使用持久套接字连接来与 IMS Connect
进行通信。事实上,IMS TM
资源适配器始终使用持久套接字连接。但在非受管环境中,应用程序在每次使用这些“持续”连接之后会将其断开,而不是保持连接供另一应用程序复用。当使用 WebSphere
Application Server 连接管理器时,其他客户机应用程序可以连续复用连接。连接管理器在必要时将创建连接,并根据需要将它们提供给应用程序。在应用程序完成了使用连接之后,连接管理器就会将该连接返回给空闲池,使它可供需要该类型的连接的任何其他应用程序复用。但是,对于每个套接字,在首次将该套接字作为 SSL 套接字进行创建并初始化时所进行的握手期间,将对每个套接字只进行一次客户机和服务器认证。当复用套接字时,SSL 客户机(IMS TM
资源适配器)和服务器(IMS Connect)不会变更。因此,在复用套接字时,就不需重新认证客户机和服务器,即不需再次完成握手过程。以下事实也可以说明这一点:每次复用套接字时,用来标识套接字的客户机标识保持不变。
如果
SSLEncryption 值设置为 ENULL,则性能应该比使用强或弱加密的 SSL 连接更快。改进程度将取决于几个因素,包括是使用了硬件还是软件加密。如果使用了硬件加密,则改进将较少,因为硬件加密比软件加密更快。