概述:WebSphere Application Server 的 SSL 使用
SSL(安全套接字层)由几个 WebSphere Application Server 组件使用以提供安全通信。特别地,SSL 由下列使用:
HTTPS:应用程序服务器的内置 HTTPS 传送。
ORB.应用程序服务器的客户机和服务器 ORB。
LDAPS:到认证使用的 LDAP 注册表的管理服务器安全连接。这仅在 WebSphere Application Server 高级版中可用。
WebSphere Application Server 中的管理模型允许通过配置缺省 SSL 设置而中央管理这些不同的 SSL 组件。此外,任何缺省设置都会由 HTTPS、ORB 和 LDAPS 特定的 SSL 设置所覆盖。这提供了中央管理和 SSL 的各种使用可能需要的个别可配置性。
对浏览器配置 SSL
对浏览器配置 SSL 是浏览器特定。查阅您的浏览器文档以获得指令。
总之,当您输入“https://...”而不是“http://...”时,浏览器创建 SSL 连接,而不是简单的到 Web 服务器的 TCP 连接。如果浏览器无法确认 Web 服务器或无法同意安全性选项的级别(要使用加密算法的力度),则浏览器通常提示用户或连接失败。
对 Web 服务器配置 SSL
要对 Web 服务器配置 SSL 取决于 Web 服务器的类型。查阅您的 Web 服务器文档以获得指令。
一般而言,当启用 SSL 时,SSL 密钥文件是必需的。该密钥文件应该包含 CA 证书(签名者证书)和任何私人信息证书。也可启用客户机认证;缺省情况下,它是禁用的。
为了客户机证书(来自浏览器的证书)由 WebSphere Web 服务器插件转发到 WebSphere Application Server,则必须为 Web 服务器启用客户机认证。启用 WebSphere Application Server 本身的客户机认证不是必需的,除非您要认证 WebSphere Web 服务器插件(或任何通过 SSL 直接连接到 WebSphere Application Server 的其它客户机)。
逐一地对 IBM HTTP Server 配置 SSL
此节提供关于对 IBM HTTP Server 配置 SSL 的简短示例。请参阅 IBM HTTP Server 文档以获得最多新近和完整的指令。同时注意您 Web 服务器的 httpd.conf.sample 文件提供所有伪指令(包括 SSL 相关的伪指令)的示例。
使用 IHS 密钥管理实用程序创建密钥文件。
在如"product_installation_root/myKeys" (见附1)的位置创建目录。
此目录将用于保持所有您的 SSL 密钥文件和证书。
从 IBM HTTP Server 开始菜单启动密钥管理实用程序。
要在 Windows 平台启动实用程序,请单击:开始 -> 程序 -> IBM HTTP Server -> 启动密钥管理实用程序
单击密钥数据库文件菜单并选择新建。
指定设置并单击确定:
密钥数据库类型:CMS 密钥数据库文件
文件名:WebServerKeys.kdb
位置:到您的“myKeys”目录的路径
输入您 SSL 密钥文件的密码(两次以确认)。
选取“是否将密码存储到文件?”选项。单击确定。
这导致创建名为“WebServerKeys.sth”的文件,其中包含密码的编码表单。请注意此编码防止了不经意查看密码,但并不是非常安全的。因此,操作系统许可应该用于防止未授权的人员到此文件的所有访问。
当您查看缺省签字人证书列表时,请单击签字人证书菜单并选择个人证书。
如果您有来自 CA(例如,Verisign)的服务器证书,您可单击导入将此证书导入到您的 SSL 密钥文件。将提示您包含服务器证书的文件的类型和位置。
然而,如果您没有来自 CA 的有效服务器证书但要测试您的系统,则您可单击新建自签署。
将最低程度提示您输入如“测试”的密钥标号和如“IBM”的组织。选择对其它值使用缺省值。
单击密钥数据库文件菜单并选择关闭。
将下列行添加到您的 httpd.conf 文件的底部file:
LoadModule ibm_ssl_module modules/IBMModuleSSL128.dll
Listen 443
SSLEnable
Keyfile "product_installation_root/myKeys/WebServerKeys.kdb"
# SSLClientAuth required
这导致 Web 服务器侦听端口 443(缺省 SSL 端口)。
如果您要启用客户机认证,取消包含“SSLClientAuth 所需”的最后行的注释。这将导致 IHS 将对于证书的请求发送到浏览器上。为了执行客户机认证,您的浏览器会提示您选择要发送到 Web 服务器的证书。
启动您的 IBM HTTP Server。
通过输入输入 URL 从浏览器测试您的配置,如:
https://localhost
如果您正在使用自签署证书,而不是 CA (如 Verisign )发出的证书,则您的浏览器应提示您查看是否要信任服务器证书的未知签署者。此外,如果您启用客户机认证,为了执行客户机认证,您的浏览器会提示您选择要发送到 Web 服务器的证书。然后应显示页面。
对 Web 服务器的 WebSphere 插件配置 SSL
一旦 SSL 在您的浏览器和 Web 服务器间工作后,则您可继续配置 Web 服务器插件和 WebSphere Application Server 间的 SSL。如果已知插件和应用程序服务器间的链接是安全的或您的应用程序不敏感,则这不是必需的。然而,如果应用程序数据的私密是关注的问题,此连接应是 SSL 连接。
步骤 1:对 WebSphere Web 服务器插件创建 SSL 密钥文件
当配置 SSL 时,您必须首先创建 SSL 密钥文件。
请注意,如果您正在使用 IBM HTTP Server,您可使用 Web 服务器正在使用的相同 SSL 密钥文件;然而,推荐您使用分隔的 SSL 密钥文件,因为连接到 Web 服务器的信任策略将很可能与连接到应用程序服务器的信任策略不同。
例如,我们可能要允许许多浏览器连接到 Web 服务器的 HTTPS 端口,我们却只想允许一小部分已知数的 WebSphere 插件直接连接到 WebSphere application server 的 HTTPS 端口。下列是一个示例,有关如何创建您的 WebSphere 插件的 SSL 密钥文件,这将仅允许插件连接到其 SSL 端口上的应用程序服务器。
如果拧还未这样做,创建目录product_installation_root\myKeys。
此目录将包含所有的 SSL 密钥文件和您将创建的抽取的证书。
启动 GSKit 的密钥管理实用程序。
GSKit 是由 WebSphere 插件使用的 SSL 实现,这同 IBM HTTP Server 使用的实现相同。
Windows 上到此实用程序的缺省路径是 C:\Program Files\ibm\gsk5\bin\gsk5ikm.exe。
单击密钥数据库文件下拉并选择新建。
指定设置并单击确定:
密钥数据库类型:CMS 密钥数据库文件
文件名:plug-inKeys.kdb
位置:您的 myKeys 目录
输入您 SSL 密钥文件的密码(两次以确认)。
选取是否将密码存储到文件? 选项。单击确定。
这导致创建文件(如"product_installation_root\myKeys\plug-inKeys.sth),其中包含密码的编码表单。此编码防止密码的不规则视图,但并不是非常安全。因此,操作系统许可应该用于防止未授权的人员到此文件的所有访问。
当您查看缺省签字人证书列表时,选择首个证书并单击删除。
重复前一个步骤直至以删除所有签署者证书。
创建自签署证书:
单击签字者菜单并选择个人证书。
单击新建自签署。
为密钥标签输入“插件”,为组织输入“IBM”。
单击确定。
抽取证书以便您稍后能将其导入应用程序服务器密钥文件。
单击抽取证书。
指定设置:
编码为 Base64 的 ASCII 数据:数据类型
证书文件名:plug-in.arm
位置:到您的 myKeys 目录的路径
单击确定。
单击密钥数据库文件菜单并选择关闭。
步骤 2:修改 WebSphere Web 服务器的插件配置文件
现在您已创建了插件的 SSL 密钥文件,编辑插件配置文件,以便其引用您的密钥文件。
下列是插件配置文件的示例。该配置导致插件将 HTTP 请求转发到应用程序服务器的 HTTP 端口,并将 HTTPS 请求转发到应用程序服务器的 HTTPS 端口。
SSL 配置信息是用来指定 secureServer1 的,这是 secureServers 组的唯一成员。所有 HTTPS 请求均转发到 secureServers 组。(服务器组是个概念,仅在高级版中支持,而不是在高级单服务器版中支持。)
SSL 密钥文件是由 keyring 特性指定,以及存储文件(包含编码密码)由 stashfile 特性指定。确保此文件的路径在您的 Web 服务器配置(例如,IHS 的 "httpd.conf")中已指定。
<特性名="keyring" 值="product_installation_root\myKeys\plug-inKeys.kdb">
<特性名="stashfile" 值="product_installation_root\myKeys\plug-inKeys.sth">
插件配置文件的 XML 实现能在再次更新该文档前更改。使用您当前的产品版本和修订包级别查阅安装在您系统上的实际配置文件作为最新和最正确的 XML 语法版本。
对 WebSphere Application Server 配置 SSL
管理控制台提供到 SSL 设置的下列访问点。
使用缺省 SSL 设置在中心管理在管理域中的资源 SSL 设置。在设置个别的资源类型中,可以覆盖任何缺省设置 - 传送或 ORB 设置。
缺省 SSL 设置
在控制台树视图中,单击安全性 -> 缺省 SSL 设置。
对 Web 容器的 HTTP 传送 HTTPS SSL 设置
显示传送特性。单击 SSL。
ORB SSL 设置
显示 ORB 设置。单击安全套接字层设置。
以上设置能通过下面描述的任何 SSL 设置配置:
SSL 特性引用
在 SSL 设置对话框中,注意加密令牌按钮以对支持的加密设备配置设置。
对应用程序服务器的 HTTPS 传送配置 SSL
为了配置 SSL,您必须首先创建 SSL 密钥文件。该文件的内容取决于您允许谁通过 HTTPS 端口直接与应用程序服务器通信(换句话说,您正在定义 HTTPS 服务器安全性策略)。
本章节显示了限制性的安全性策略,其中仅允许明确的客户机集合(Web 服务器的 WebSphere 插件)连接到应用程序服务器的 HTTPS 端口。下列创建 SSL 密钥文件的过程不用遵循缺省签署者证书的限制性趋势。
步骤 1:不用缺省签署者证书来创建 SSL 密钥文件
启动 IKeyMan。
在 Windows 上,从 Windows 启动菜单上的 WebSphere Application Server 入口启动 IKeyMan。
创建新的密钥数据库文件。
单击密钥数据库文件并选择新建。
指定设置:
密钥数据库类型:JKS
文件名:appServerKeys.jks
位置:您的 myKeys 目录,如 "product_installation_root\myKeys
单击确定。
输入密码(两次以确认)并单击确定。
删除所有签署者证书。
单击签署者证书并选择个人证书。
添加新的自签署证书。
单击新建自签署来添加自签署证书。
指定设置。
密钥标签:appServerTest
组织:IBM
单击确定。
从该自签署证书抽取证书以便能把它导入到插件的 SSL 密钥文件。
单击抽取证书。
指定设置:
数据类型:编码为 Base64 的 ASCII 数据
证书文件名:appServer.arm
位置:到您的 myKeys 目录的路径
单击确定。
导入插件的证书。
单击个人证书并选择签署者证书。
单击添加。
指定设置:
数据类型:编码为 Base64 的 ASCII 数据
证书文件名:appServer.arm
位置:到您的 myKeys 目录的路径
单击确定。
为标签输入“插件”并单击确定。
单击密钥数据库文件。
选择退出。
步骤 2:将应用程序服务器的签署者证书添加到插件的 SSL 密钥文件
启动密钥管理实用程序。
单击密钥数据库文件菜单并选择打开。
选择 product_installation_root\myKeys\plug-inKeys.kdb 文件。
输入相关联的密码并单击确定。
单击个人证书并选择签署者证书。
单击添加。
指定设置。
数据类型:编码为 Base64 的 ASCII 数据
证书文件名:appServer.arm
位置:到您的 myKeys 目录的路径。
单击确定。
单击密钥数据库文件并选择退出。
步骤 3:引用 WebSphere Application Server 系统管理中的密钥文件
引用在缺省 SSL 设置配置面板中或在 HTTPS SSL 设置配置面板中适当的 SSL 密钥文件。在此,我们将使用缺省 SSL 设置面板。
启动管理控制台。
在树视图中,单击安全性 -> 缺省 SSL 设置。
指定设置。
密钥文件名称:product_installation_root/myKeys/appServer.jks
密钥文件密码:输入您的密码
密钥文件格式:JKS
信任文件名:(空的)
信任文件密码:(空的)
客户机认证:所选
单击确定。
保存您的服务器配置。
步骤 4:停止服务器并再次启动
配置完成。为了激活配置,停止并重新启动 Web 服务器和应用程序服务器。
.6.18.3:用 Web 控制台管理安全性
使用 Web 控制台启用和禁用全局安全性,使用本地操作系统注册表认证用户。启用安全性之后,对此管理控制台的访问将被登录屏幕保护。
通过将它们定位在控制台左侧的树中,来使用安全性配置:
在树中,单击安全性条目。
附1:产品安装根参考
检查产品先决条件,以确认给定的操作系统支持您所使用的 WebSphere Application Server 的版本。