使用安全套接字层(SSL)支持

为了使用 SSL,必须同时对客户机(IMS™ TM 资源适配器)和服务器(IMS Connect)进行配置。
下表提供了有关在配置 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 属性:

注意:可以在 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 连接更快。改进程度将取决于几个因素,包括是使用了硬件还是软件加密。如果使用了硬件加密,则改进将较少,因为硬件加密比软件加密更快。


反馈