Let’s Encrypt 是免费、自动化(自动颁发和续订证书)和开放的证书颁发机构。下面介绍了 Let's Encrypt 证书颁发机构与 NSX Advanced Load Balancer 的集成。

SSL/TLS 协议有助于确保 Internet 连接的安全,并保护在两个计算机、系统或设备之间发送的任何敏感数据,从而防止入侵者读取和修改在两个计算机、系统或设备之间传输的任何信息。虽然 SSL/TLS 证书可确保系统之间的安全加密连接,但仍存在下面一些挑战。

  • 手动获取证书。

  • 与 CA 签名证书相关的成本。

Let's Encrypt 可以解决上述挑战。有关更多信息,请访问 Let's Encrypt

使用 Let’s Encrypt

在颁发证书之前,Let’s Encrypt 服务器会使用 ACME 标准定义的质询来验证请求者是否有权控制该证书中的域名。Let’s Encrypt 使用 ACME 协议验证您是否有权控制给定域名并为您颁发证书。代理或客户端可以通过不同方式证明对域的控制权。

  • 在域下置备 DNS 记录(根据 CSR 公用名称)。

  • 在已知 URI 下置备 HTTP 资源。

NSX Advanced Load Balancer 支持使用 HTTP-01 质询进行域验证。

HTTP-01 质询

  • Let’s Encrypt 向 ACME 客户端提供一个令牌,该客户端将一个文件放置到位于 http://<YOUR_DOMAIN>/well-known/acme-challenge/<TOKEN> 的 Web 服务器上。该文件包含令牌和帐户密钥的指纹。

  • 在 ACME 客户端告知 Let’s Encrypt 文件已准备就绪后,Let’s Encrypt 会尝试检索该文件(可能从多个有利点进行多次尝试)。

  • 如果验证检查从 Web 服务器获得正确响应,则视为验证成功并颁发证书。

注:
  • Let's Encrypt CA 使用端口 80 通信以进行 HTTP-01 质询,因此必须在防火墙上打开端口 80,并且 Let's Encrypt CA 必须能够访问用户网络(部署了 NSX Advanced Load Balancer 系统的网络)。Let's Encrypt CA 使用端口 80 通过公用网络连接到用户的 NSX Advanced Load Balancer 系统。

  • 仅当还没有虚拟服务侦听端口 80 时,脚本才会自动在端口 80 上为侦听端口 443/自定义 SSL 端口的相应虚拟服务创建一个虚拟服务。

有关域验证的更多信息,请访问以下链接。

配置 Let's Encrypt

下面概要介绍了如何配置 Let’s EncryptNSX Advanced Load Balancer 的集成。

  1. 获得用于获取和续订证书的脚本。

  2. NSX Advanced Load Balancer 系统上将该脚本添加为控制器脚本。

  3. 为客户添加用户帐户(仅拥有有限访问权限)。

  4. NSX Advanced Load Balancer 系统上创建证书管理配置文件。

  5. NSX Advanced Load Balancer 系统上添加虚拟服务。

  6. 确保 FQDN 解析为公用 IP,并且端口 80 在防火墙上处于打开状态。

  7. 创建 CSR 并选择配置的证书管理配置文件。

  8. 查看证书列表。Let's Encrypt CA 将推送签名证书。

  9. 将证书与配置的虚拟服务相关联。

配置 NSX Advanced Load Balancer 系统

要为 NSX Advanced Load Balancer 配置 Let's Encrypt,请执行以下操作。

  1. letsencrypt_mgmt_profile 下载相应脚本。要下载文件,请单击原始选项。复制提供的代码。

  2. NSX Advanced Load Balancer 中,导航到模板 > 脚本 > ControlScript,然后单击创建

  3. 添加有意义的名称,并将步骤 1 中复制的代码粘贴到导入或粘贴控制脚本字段中。保存配置。

  4. 导航到管理 > 角色,以配置自定义角色。确保为此角色启用对虚拟服务、应用程序配置文件、SSL/TLS 证书以及证书管理配置文件的读取和写入访问权限。



5. 添加用户,输入所有必需的详细信息,然后选择配置的自定义角色。



6. 导航到模板 > 安全性 > 证书管理,然后单击创建

7. 输入有意义的名称,选择配置的控制脚本并启用自定义参数,然后添加自定义参数,如以下示例中所示:



注:

建议不要使用 admin 帐户。请始终添加具有自定义角色(拥有有限访问权限)的用户帐户。

8. 导航到模板 > 安全性 > SSL/TLS 证书,单击创建,然后选择应用程序证书

9. 输入有意义的名称、公用名称,选择配置的证书管理配置文件,添加所有相关的详细信息并保存配置。



确保为虚拟服务配置了应用程序域名以作为证书的公用名称 (Common Name, CN)。证书 CN 必须与虚拟服务的应用程序域名相匹配。FQDN(证书 CN 或虚拟服务的应用程序域名)必须解析为 IP 地址,并且域必须可访问。

几分钟后,查看证书列表。您可以看到 Let’s Encrypt CA 推送的证书。将证书与配置的虚拟服务相关联。

日志

要查看日志,请为配置的虚拟服务启用非重要日志并生成证书。以下是日志示例。



证书自动续订

Controllerproperties 中具有 ssl_certificate_expiry_warning_days 配置。在默认配置中,ssl_certificate_expiry_warning_days 的值为 30 天、7 天和 1 天。可根据需要修改此设置。如果需要续订证书(根据配置的设置),相应脚本将激活并自动处理证书续订。

注:

Let’s Encrypt CA 设有速率限制。因此,请确保证书续订不会超出速率限制。

其他信息

  • 有关速率限制的更多信息,请参阅速率限制

  • 有关 SSL/TLS 证书的更多细信息,请参阅 SSL 证书