跳到主要内容

管理加密密钥

事件代理使用三类加密密钥,每类用于不同目的:

  • TLS 服务器密钥用于入站连接的 TLS 服务器认证。
  • TLS 客户端密钥用于出站连接的 TLS 客户端认证,这些连接类型包括:
    • 桥接
    • 复制
    • REST/RDP
    • DMR
    • MNR
  • TLS 预共享密钥用于冗余组成员之间相互认证的 TLS 连接(从 9.2.0 版本开始)。

您必须为每个目的使用唯一的密钥。事件代理仅将密钥用于其配置的目的。

TLS 服务器证书必须包含适用于服务器认证的适当 keyUsageextendedKeyUsage 扩展。TLS 客户端证书必须包含适用于客户端认证的适当 keyUsageextendedKeyUsage 扩展。

密钥生成

您必须生成密钥并获取它们的证书(预共享密钥不需要证书)。TLS 客户端和服务器密钥是 RSA 私钥,而 TLS 预共享密钥是对称的。

密钥传输

您可以使用不同的机制加载密钥,如下所述。

要部署软件事件代理:

  • 使用预安装的 TLS 服务器密钥,请使用密钥。详细信息,请参阅配置密钥。
  • 使用 TLS 预共享密钥,请使用以下配置密钥:
    • redundancy/authentication/presharedkey/key
    • redundancy/authentication/presharedkey/keyfilepath
  • 使用 TLS 客户端和服务器密钥,请使用 SEMPv2。然而,过程取决于您使用的密钥类型。详细信息,请参阅 SEMP API 参考。

总体而言,加载 TLS 客户端和服务器密钥的过程包括设置:

  • 一个写入仅属性,包含 PEM(.pem)编码的证书链和密码加密的密钥
  • 一个单独的写入仅属性,提供该密码

例如,如果您使用根对象的 tlsServerCertContenttlsServerCertPassword 属性设置 TLS 服务器密钥,事件代理将仅使用提供的密码解密密钥一次。在事件代理存储密钥之前,它将使用唯一密钥重新加密密钥。

您可以将 TLS 客户端和服务器密钥从一个事件代理复制到另一个事件代理的不透明加密形式。在此方法中,事件代理使用 SEMPv2 不透明写入仅检索机制用于配置密钥。此机制使用提供的密码加密。详细信息,请参阅 SEMP API 参考。

使用 CLI 加载 TLS 客户端密钥的过程取决于密钥用途:

  • 对于桥接,请参阅配置 VPN 桥接
  • 对于复制,请参阅配置 VPN 级别复制设置
  • 对于 REST/RDP,请参阅管理 REST 交付点
  • 对于 DMR,请参阅配置 DMR 集群
  • 对于 MNR,请参阅多节点路由

总体而言,要在事件代理上加载 TLS 客户端和服务器密钥,请执行以下操作:

  1. 使用加密连接(如 scp),将包含证书和密码保护密钥(私钥)的 PEM(.pem)文件复制到事件代理。详细信息,请参阅事件代理文件管理。

  2. 配置事件代理使用该密钥对用于您的目的。 此时,事件代理提示并使用密码解密私钥。然后,事件代理使用唯一代理密钥重新加密加载的私钥并将其存储在事件代理配置中。如果代理密钥尚不存在,事件代理将生成唯一代理密钥并单独存储。

  3. 从事件代理中删除 PEM 文件。

要查看使用 CLI 加载 TLS 预共享密钥的详细过程,请参阅软件事件代理的预共享认证密钥。

密钥存储

事件代理在配置文件中存储密钥,并使用其单独存储的唯一密钥对它们进行加密。

为了额外保护,您可以使用底层基础设施(如云提供商)的功能来加密事件代理使用的卷。

密钥生命周期

您必须确定每个密钥的生命周期。通常,此生命周期对应于证书到期日期。您应在证书到期日期之前更换密钥(和证书),以避免服务中断。