跳到主要内容

配置证书颁发机构

本节提供基本的信息,帮助您配置证书颁发机构(CA)并管理客户端认证的证书吊销检查。

启用或禁用标准域名验证证书颁发机构列表

标准域名验证 CA 列表是一个预填充的标准、受信任的域名验证根证书列表,用于验证所有出站 TLS 连接的服务器名称,且不能修改。默认情况下,标准域名 CA 列表已启用。如果您只想使用域名 CA 列表,可以禁用标准域名验证列表。

要禁用标准域名验证 CA 列表,请输入以下命令:

solace(configure)# no ssl standard-domain-certificate-authorities

要启用标准域名验证 CA 列表,请输入以下命令:

solace(configure)# ssl standard-domain-certificate-authorities

在 9.8.0 之前的版本中,客户端认证 CA 列表是唯一的列表,用于入站和出站 TLS 连接。

配置域名验证证书颁发机构列表

域名验证 CA 列表与标准域名验证列表结合使用,以验证所有出站 TLS 连接的服务器名称。在新部署中,域名验证 CA 列表最初为空。在升级到 9.8.0+ 版本的部署中,事件代理将现有 CA 列表的内容复制到域名 CA 列表和客户端认证 CA 列表中。您可以配置此列表中的 CA 以适应您的部署。

以下是用于域名验证 CA 创建和配置的 Solace CLI 命令。

  1. 要创建域名 CA,请输入以下命令:
solace(configure)# ssl
solace(configure/ssl)# create domain-certificate-authority <ca-name>

要配置现有域名 CA,请输入以下命令:

solace(configure/ssl)# domain-certificate-authority <ca-name>
  1. 链中的每个证书都必须配置用于认证。要配置 CA 证书,请输入以下命令:
solace(configure/ssl/domain-certificate-authority)# certificate file <ca-certificate>

其中:

ca-name 是 CA 的名称。您可以为 ca-name 使用最多 64 个字符。可接受的字符是字母数字字符、句点(.)、连字符(-)和下划线(_)。

ca-certificate 是 CA 证书的文件名。此文件必须位于事件代理上的 /usr/sw/jail/certs 目录中。一旦证书位于 certs 目录中,您可以将证书单独添加到受信任 CA 证书列表中。可以加载的最大受信任 CA 证书数量为 64。

此命令的 no 版本,no certificate,从事件代理中移除域名 CA。

在 9.8.0 之前的版本中,客户端认证 CA 列表是唯一的列表,用于入站和出站 TLS 连接。

配置客户端认证证书颁发机构列表

Solace PubSub+ 事件代理允许客户端通过呈现有效的客户端证书在 TLS 上进行认证。事件代理通过构建完整的证书链(从客户端证书到中间 CA 到配置的根 CA)来认证客户端证书。此链中的中间 CA 可以由客户端提供,也可以在事件代理中配置。根 CA 必须在事件代理上配置。

对于使用 8.2.0+ 版本的 Solace PubSub+ 设备和使用 8.7.0+ 版本的 Solace PubSub+ 软件事件代理,必须配置 CA 证书以验证所有 SSL 连接的入站证书。

CA 的证书文件只能包含一个证书。根据是否还使用 SSL/TLS 认证和/或吊销检查,还有其他一些注意事项:

  • SSL/TLS 认证

至少必须在代理上配置根 CA。

  • 证书颁发机构吊销检查

必须在代理上配置根 CA 以及完成链的所有中间 CA。

以下是用于客户端认证 CA 创建和配置的 Solace CLI 命令。

  1. 要创建客户端认证 CA,请输入以下命令:
solace(configure)# authentication

solace(configure/authentication)# create client-certificate-authority <ca-name>

要配置现有客户端认证 CA,请输入以下命令:

solace(configure/authentication)# client-certificate-authority <ca-name>
  1. 链中的每个证书都必须配置用于认证。要配置 CA 证书,请输入以下命令:
solace(configure/authentication/client-certificate-authority)# certificate file <ca-certificate>

其中:

ca-name 是 CA 的名称。您可以为 ca-name 使用最多 64 个字符。可接受的字符是字母数字字符、句点(.)、连字符(-)和下划线(_)。

ca-certificate 是 CA 证书的文件名。此文件必须位于事件代理上的 /usr/sw/jail/certs 目录中。一旦证书位于 certs 目录中,您可以将证书单独添加到受信任 CA 证书列表中。可以加载的最大受信任 CA 证书数量为 64。

此命令的 no 版本,no certificate,从事件代理中移除 CA。

  • CA 证书是 HA 配置同步的,但不是复制配置同步的。
  • 一旦配置了 CA 证书,其副本将被内部保存。/usr/sw/jail/certs 目录中的文件不再需要。
  • 在 9.8.0 之前的版本中,使用 certificate-authority 命令。有关详细信息,请参阅配置证书颁发机构。

与旧版本的兼容性

为了与 9.8.0 之前的版本兼容,certificate-authority 命令已被弃用,但将继续使用,直到 2027 年 1 月(9.8.0 发布后的 6 年),在客户端认证 CA 列表和域名验证 CA 列表上操作,或者根据需要仅在客户端认证列表上操作。2027 年 1 月之后,这些命令将被移除。

参与配置同步的命令

以下命令参与配置同步。直到 2024 年 1 月(9.8.0 发布后的 3 年),如果客户端认证 CA 和域名验证 CA 列表包含具有相同 CA 名称的相同证书,则将为配置同步目的发出原始命令。如果列表不同,则将发出新命令。在 2024 年 1 月至 2027 年 1 月之间,将为配置同步目的发出新命令。2027 年 1 月之后,将移除弃用的命令。

  • create certificate-authority <ca-name>(这与运行 create client-certificate-authority <ca-name>create domain-certificate-authority <ca-name> 相同。如果指定的 CA 名称存在于任一列表中,或者任一列表已满,事件代理将发出错误并什么也不做。)
  • no certificate-authority <ca-name>(这与运行 no client-certificate-authority <ca-name>no domain-certificate-authority <ca-name> 相同。如果指定的 CA 名称不在两个列表中都存在,事件代理将发出错误并什么也不做。)
  • certificate-authority <ca-name>(这与运行 client-certificate-authority <ca-name>domain-certificate-authority <ca-name> 相同。如果指定的 CA 名称不在两个列表中都存在,代理将发出错误并什么也不做。)
  • certificate-authority <ca-name> revocation-checkrevocation-check 下的所有命令都与 client-certificate-authority 的相应命令相同,换句话说,client-certificate-authority <ca-name> revocation-check

其他命令

以下命令不参与配置同步。2027 年 1 月之后,这些命令将被移除。

  • show certificate-authority(如果具有相同名称和证书的 CA 同时存在于客户端认证 CA 列表和域名验证 CA 列表中,则这与 show client-certificate-authority 相同。如果名称或证书不相同,则结果将为空。)
  • admin certificate-authority <ca-name> refresh-crl(这与运行 admin client-certificate-authority <ca-name> refresh-crl 相同)
  • clear certificate-authority stats(这与运行 clear client-certificate-authority stats 相同)

从 9.7.0 及更早版本升级到 9.8.0+

升级到 9.8.0+ 版本将把当前 CA 列表的内容复制到域名验证 CA 列表和客户端认证 CA 列表中。升级后,您可以修改任一列表中的证书。

配置证书吊销检查

事件代理可以检查客户端尝试认证时使用的证书的吊销状态。您可以基于每个事件代理配置证书吊销检查。然而,您也可以基于每个消息 VPN 配置覆盖,以忽略吊销检查的结果,并允许认证具有未知吊销状态的证书。

您可以配置事件代理使用以下方法之一检查客户端证书的吊销状态:

  • 证书吊销列表(CRL)
  • 在线证书状态协议(OCSP)
  • OCSP-CRL(两者的组合)

有关详细信息,请参阅证书吊销检查方法。

要启用证书吊销检查,请输入以下命令:

solace(configure/authentication)# client-certificate-revocation-checking [none | ocsp | crl | ocsp-crl]

其中:

none(默认)指定在验证期间不检查证书的吊销状态,所有证书都被视为有效。

ocsp 指定在验证期间使用 OCSP 验证证书的吊销状态。

crl 指定在验证期间使用 CRL 验证证书的吊销状态。

ocsp-crl 指定首先使用 OCSP 验证证书的吊销状态,如果 OCSP 未能返回明确的结果,则使用 CRL 检查证书的吊销状态。

有关配置 OCSP、CRL 或 OCSP-CRL 证书吊销检查的逐步程序,请参阅以下内容。

  • 配置 OCSP 证书吊销检查
  • 配置 CRL 证书吊销检查
  • 配置 OCSP-CRL 证书吊销检查