在 WAS 中使用 Java 安全套接字扩展(图) (3)
[ 来源:互网络 | 更新日期:2007-10-05 04:19:41 | 浏览次数:9355]
简介:对于大多数情况,这样的配置就足够了。极少的情况下,您可能需要不只一个单独的缺省信任库/密钥库。随后,您将会看到如何程序化地将您的信任库和密钥库指定到 JSSE 运行时中,以及如何在您的应用程序中使用多重信任库及密钥库。
出于同样的机制,服务器必须本地保护它的私有密钥并且使其能够访问 JSSE 运行时。在此处使用密钥库。密钥库与信任库有相同的格式,它只包含了不同的密钥。实际上,专业术语“密钥库”通常表示“信任库或密钥库”。
总之,信任库包含了签名者的证书,该签名者在使用信任库的环境中得到信任。另一方面,密钥库维护了实体的私有密钥,及其相应的 PKC。例如,当服务器面向客户端进行自身验证时,它需要从其密钥库中检索它的私有密钥来与加入客户端的 SSL 握手。所以,应该确实地重视信任什么签名者;也就是说,使用信任库的哪些内容。IBM 提供的缺省信任库包括了一些公认的且广泛信任的 Certificate Authorites(CA)。在这里一种好的实践是周期性地浏览您的信任库并且作出您关于其内容可信性的判断――可能删除一些 CA。
现在我们已经知道信任库是什么以及密钥库是什么,让我们来了解一下使用 IBM JSSE 在 WebSphere Application Server 环境中是如何定义它们的。
如何指定密钥库和信任库
为了打开 JSSE 的连接,您必须在信任库和密钥库中拥有合适的证书以及私有密钥。您需要配置 JVM 来使用您的信任库或密钥库。然而,如果您仅执行服务器验证(就是说,客户端使服务器的证书生效,但不允许反向),那么您只需要信任库。
如果您在没有明确地指定信任库或密钥库的情况下创建 SSL 连接,那么 JSSE 运行时将会使用“缺省”库。对于 WebSphere Application Server 来说,意味着 cacerts 文件被用作缺省的信任库(位于 WAS 安装目录下的 java/jre/lib/security 中)。
如果您联系的站点使用由公认的 CA 发出的证书,那么 IBM 提供的缺省证书很可能已经包含了您需要的信息。您可以使用 IBM 提供的 iKeyman 工具(WebSphere Application Server 安装后自动可用)打开 cacerts 文件来确定 JDK 中包含什么证书。
如果您访问的站点没有使用由 CA 发出的证书,CA 被包含在 WebSphere Application Server 中,那么您需要获得它们的签名证书并且将其添加到信任库中。我们推荐您不要修改现有的 JDK 文件,而是使用 iKeyman 创建新的信任库。然后您需要配置 WebSphere Application Server 运行时来使用该信用库,。
为了配置 WebSphere Application Server 来使用定制的信任库,您需要设置 JVM System 属性 javax.net.ssl.trustStore。使用管理控制台设置 WebSphere Application Server 中的该 JVM 变量:
从管理控制台,导航到 Servers => Application Servers => server_name => Custom Properties => New。
输入属性的名称:javax.net.ssl.trustStore。
输入属性值,即您的信任库的完全限定的文件名。
添加您所希望的描述。
类似地,定义附带的属性,它维护访问您的信任库所需的密码,通过导航到 Servers => Application Servers => server_name => Custom Properties => New 来实现。
关于密码值的属性名称:javax.net.ssl.trustStorePassword。(这里请注意密码一直在 cleartext 之中。)
密钥库可以以相同的方式使用属性 javax.net.ssl.keyStore 及其相应的 javax.net.ssl.keyStorePassword 来定义。
您也可以在您的应用程序中对这些属性进行硬编码,如下面的实例所示,但这并不是一个好的做法,因


您的位置:
