下面的章节描述了如何创建和安装要与 WebSphere Partner Gateway 一起使用的 SSL 证书。其中还概述了 SSL 握手过程。如果您的社区不使用 SSL,则您或您的参与者不需要入站或出站 SSL 证书。
每个 SSL 会话都从握手开始。
当客户机(参与者或社区管理者)启动消息交换时,发生下列步骤:
服务器认证发生在本步骤中。
SSL 握手结束,可以发送加密的应用程序数据。
本部分描述如何为来自参与者的入站连接请求配置服务器认证和客户机认证。
当 WebSphere Application Server 接收到来自参与者通过 SSL 发送的连接请求时,它使用 SSL 证书。“接收器”提供该证书来将中心标识到参与者。该服务器证书可以自签名,也可以由 CA 签名。在大多数情况下,您可以使用 CA 证书以提高安全性。在测试环境中,可以使用自签名的证书。使用 iKeyman 来生成证书和密钥对。请参考可从 IBM 获取的文档以获取有关使用 iKeyman 的更多信息。
在您生成证书和密钥对之后,请将该证书用于所有参与者的入站 SSL 通信。如果有多个“接收器”或“控制台”,则请将产生的密钥库复制到每个实例。如果证书是自签名的,则将该证书提供给参与者。要获取该证书,请使用 iKeyman 将公共证书抽取到某个文件。
如果您将使用自签名的服务器证书,请使用以下过程。
将密钥库保存到 JKS、PKCS12 或 JCEK 文件。
如果您打算使用由 CA 签名的证书,则请使用下列步骤。
如果要认证发送文档的参与者,请执行本部分中的步骤。
对于客户机认证,请使用下列步骤:
安装证书之后,请通过运行实用程序脚本 bcgClientAuth.jacl 来配置 WebSphere Application Server,以使用客户机认证。
./bcgwsadmin.sh -f /<ProductDir>/scripts/bcgClientAuth.jacl -conntype NONE set
./bcgwsadmin.sh -f /<ProductDir>/receiver/scripts/bcgClientAuth.jacl -conntype NONE clear
要使这些更改生效,请重启 bcgreceiver 服务器。.
还有另一项功能可与 SSL 客户机认证一起使用。该功能是通过“社区控制台”启用的。对于 HTTPS,WebSphere Partner Gateway 根据入站文档中的企业标识来检查证书。要使用该功能,请创建参与者概要文件,导入客户机证书,然后将其标记为 SSL。
如果您的社区不使用 SSL,则不需要入站或出站 SSL 证书。
当使用 SSL 将出站文档发送给参与者时,WebSphere Partner Gateway 请求来自参与者的服务器端证书。同一个 CA 证书可用于多个参与者。该证书必须是 X.509 DER 格式的。
将参与者的自签名证书安装到中心操作者概要文件。如果证书是由 CA 签名的,但 CA 根证书和其他任何作为证书链一部分的证书 尚未安装在中心操作者的概要文件中,则将证书安装在中心操作者概要文件中。
如果需要 SSL 客户机认证,则反过来参与者将请求来自中心的证书。请使用“社区控制台”将您的证书导入 WebSphere Partner Gateway。 您可以使用 iKeyman 生成证书。如果证书是自签名的,则必须将其提供给参与者。如果它是 CA 签名的证书,则必须将 CA 根证书提供给参与者,以便他们可以将该证书添加到其可信的证书。
您可以有多个 SSL 证书。 一个是主证书,缺省情况下使用它。 另一个是次级证书,如果主证书到期或者无法使用,则使用该证书。
如果您将使用自签名证书,则使用以下过程。
如果您正为 SSL 客户机认证和数字签名上载主证书和次级证书,而且正以两个单独的实体上载主证书,则请确保相应的次级证书也是以两个不同实体上载的。
如果您打算使用由 CA 签名的证书,请使用下列步骤:
WebSphere Partner Gateway 包含证书撤销列表(CRL)功能。 CRL 是由认证中心(CA)颁发的,它标识了拥有已撤销证书的参与者,这些证书是在既定的截止日期前撤销的。拥有已撤销证书的参与者将被拒绝访问 WebSphere Partner Gateway。
CRL 中每个已撤销证书是通过其证书序列号标识的。“文档管理器”每隔 60 秒扫描 CRL,如果某个证书包含在 CRL 列表中,则拒绝该证书。
CRL 存储在以下位置:/<shared_data_directory>/security/crl。WebSphere Partner Gateway 使用 bcg.properties 文件中的设置 bcg.CRLDir 来标识 CRL 目录的位置。
创建包含已撤销证书的 .crl 文件,并将其放入 CRL 目录。
例如,在 bcg.properties 文件中,您必须使用下列设置:
bcg.CRLDir=/<shared_data_directory>/security/crl
CA 维护并更新 CRL。这些 CRL 通常存储在 CRL 分发点中。进行证书撤销检查时使用 CRL 来确定证书是否被撤销。
当执行撤销检查时,bcgSetCRLDP.jacl 脚本可用于启用或禁用 CRL 分发点检查。 当执行证书的撤销检查时,如果您需要能够访问 CRL 分发点,则启用 CRL 分发点。如果已安装的证书包含 CRL DP 扩展,则可以启用 CRL 分发点,以便在执行撤销检查时访问分发点。如果您在属性 bcg.CRLDir 的 bcg.properties 中设置的目录里下载了所有必需的 CRL,则可能不希望启用 CRL 分发点。如果当前 CRL 可能在 bcg.CRLDir 目录中不可用,则应该启用 CRL 分发点。
通过支持 HTTP 和 LDAP,可以访问 CRL 分发点。您也可以配置代理来访问 CRL 分发点。
要启用 CRL 分发点,请从 <ProductDir>/bin 目录运行以下命令:
./bcgwsadmin.sh -f <ProductDir>/scripts/bcgSetCRLDP.jacl install <nodename> <serverName> CRLDP
其中:
要禁用 CRL 分发点,请从 <ProductDir>/bin 目录运行以下命令:
./bcgwsadmin.sh -f <ProductDir>/scripts/bcgSetCRLDP.jacl uninstall <nodename> <serverName> CRLDP
要启用带有代理的 CRL 分发点,请从 <ProductDir>/bin 目录运行以下命令:
./bcgwsadmin.sh -f <ProductDir>/scripts/bcgSetCRLDP.jacl install <nodename> <serverName> CRLDP <proxyHost> <proxyPort>
要指定您不想使用代理,请从 <ProductDir>/bin 目录运行以下命令:
./bcgwsadmin.sh -f <ProductDir>/scripts/bcgSetCRLDP.jacl uninstall <nodename> <serverName> PROXY
如果您正在使用“接收器”用户出口,而且,如果该用户出口使用 SecurityService API,则以上设置也适用于 bcgreceiver 服务器。要对“接收器”运行以上命令,则将 bcgdocmgr 替换为 bcgreceiver。