![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
SSL 证书撤销列表和在线证书状态协议
了解如何为客户机证书配置证书撤销检查。 证书撤销列表 (CRL) 是不推荐使用的功能。您可将在线证书状态协议 (OCSP) 与 TLS 证书配合使用。
注: 证书撤销列表 (CRL) 是不推荐使用的功能。将在线证书状态协议 (OCSP) 与 TLS 证书配合使用。
证书撤销功能提供了在密钥泄漏或密钥访问许可权被撤销时,撤销浏览器提供给
IBM® HTTP Server
的客户机证书的能力。通过以下两种协议执行撤销检查。- 证书撤销列表 (CRL)(不推荐)
- 数据库,其中包含在证书的预定到期日期之前被撤销的证书的列表。
- 在线证书状态协议 (OCSP)
- 基于 HTTP 的服务,用于检查在预订到期日期之前是否已撤销单个证书。
如果您想要在 IBM HTTP Server 中启用证书撤销功能,请在轻量级目录访问协议 (LDAP) 服务器上发布 CRL。 一旦将 CRL 发布到 LDAP 服务器上,您就可以使用 IBM HTTP Server 配置文件来访问 CRL。CRL 确定所请求客户机证书的访问许可权状态。但是,请注意,如果作为撤销数据源的后端服务器不可用或无法与 IBM HTTP Server 正常通信,那么并非始终能够确定客户机证书的撤销状态。
CRL 选项用于在 SSL 虚拟主机内开启和关闭 CRL。如果您指定 CRL 作为选项,那么表示您选择开启 CRL。如果您未指定 CRL 作为选项,那么 CRL 将保持关闭。如果 SSLClientAuth 的第一个选项等于 0/无,那么您不能使用第二个选项(即 CRL)。如果您未开启客户机认证,那么不会进行 CRL 处理。
证书撤销信息由以下不同源提供:
- Web 服务器管理员可聚集来自多个源的撤销信息,并显式配置此位置
- 针对 OCSP,SSLOCSPResponderURL 伪指令用于配置此源。
- 针对 CRL,SSLCRLHostname 伪指令和 SSLClientAuth 伪指令的可选 crl 参数用于配置此源。
- 证书中心可在其发出的每个证书中嵌入撤销信息的授权源。
- 针对 CRL,仅当配置了显式配置的源时,才使用此源。
- 针对 OCSP,SSLOCSPEnable 用于配置和处理这些源。
避免故障: 如果作为撤销数据源的后端服务器不可用或无法与 IBM HTTP Server 正常通信,那么并非始终能够确定客户机证书的撤销状态。请参阅“SSLUnknownRevocationStatus”伪指令以配置在此类情况下服务器的行为。gotcha
避免故障: 如果证书使用 LDAP 或 HTTP URI 格式的 CertificateDistributionPoint 或 AIA 扩展,请确保 IBM HTTP Server 系统可以建立此类型的传出连接;您可能需要调整防火墙设置。gotcha
标识在全局服务器和虚拟主机中受支持的特定于 CRL 的伪指令。
请参阅SSL 伪指令,以获取有关配置 OCSP 的更多信息。全局服务器和虚拟主机支持以下伪指令:
- SSLCRLHostname:CRL 数据库所在的 LDAP 服务器的 IP 地址和主机。目前,您必须配置任何静态 CRL 存储库,才允许检查 CRLDistributionPoint 字段中的其他 URI 格式。
只能查询显式配置的 LDAP 服务器以获取 CRL,并且在后端服务器不可访问时,SSL 握手将会失败。
- SSLCRLPort:CRL 数据库所在的 LDAP 服务器端口;缺省值等于 389。
- SSLCRLUserID:要发送到 CRL 数据库所在的 LDAP 服务器的用户标识;如果您未指定绑定,那么缺省值为 anonymous。
- SSLStashfile:包含 LDAP 服务器上的用户名密码的文件的标准路径。对于匿名绑定,不需要此伪指令。请在指定了用户标识时使用此伪指令。
可以使用 IBM HTTP Server 的 bin 目录中的 sslstash 命令来创建您的 CRL 密码隐藏文件。您使用 sslstash 命令指定的密码应该就是您用来登录到 LDAP 服务器的密码。
用法:
其中:sslstash [-c] <directory_to_password_file_and_file_name> <function_name> <password>
- -c:创建新的隐藏文件。如果未指定此参数,那么现有文件将会更新。
- File:表示要创建或更新的文件的标准名称。
- Function:指示要对其使用密码的功能。有效值包括 crl 或 crypto。
- Password:表示要隐藏的密码。
SSLUnknownRevocationStatus:此伪指令允许您配置在最新的证书撤销列表 (CRL) 信息或 OCSP(在线证书状态协议)信息不可用,并且不知道当前提供的客户机证书是否已从先前查询撤销时,IBM HTTP Server 将如何进行响应。缺省情况下,假定不会撤销证书,这意味着证书有效,并且获取 CRL 或 OCSP 信息暂时失败不会自动导致 SSL 握手失败。提供此伪指令是为了响应下列情况:在 IBM HTTP Server 无法可靠地确认撤销状态的情况下已接受证书。
仅当满足下列所有条件时,此伪指令才起作用:- 已使用 SSLClientAuth 伪指令将 IBM HTTP Server 配置为接受客户机证书。
- 已使用下列某个伪指令配置 IBM HTTP Server:SSLOCSPEnable、SSLOCSPUrl 或 SSLCRLHostname。
- 已提供 SSL 客户机证书。
- IBM HTTP Server 未接收到来自已配置的后端服务器的有效 OCSP 或 CRL 响应,并且在已高速缓存但已到期的 CRL
响应中,客户机证书未显示为“已撤销”。
在当前版本不可用时,IBM HTTP Server 会使用超过其已发布的到期时间的高速缓存 CRL。如果在这种已到期的 CRL 中证书已被撤销,那么这将导致直接 SSL 握手失败,这超出了 SSLUnknownRevocationStatus 伪指令的范围。
在客户机证书中的 URIDistributionPoint X509 扩展之后以及对从客户机证书的签发者构造的 DN
进行尝试之后,进行 CRL 检查。如果证书包含 CRL 分发点 (CDP),那么将优先使用该信息。该信息的使用顺序如下所示:
- CDP LDAP X.500 名称
- CDP LDAP URI
- 与来自 SSLCRLHostname 伪指令的值组合的签发者名称