Skip to main content

第三方 ACME 客户端自动化示例

通过 CertCentral,您可以使用任何第三方 ACME 客户端实现证书自动化。例如 EFF 的 Certbot 客户端。

此处示例演示了如何使用 Certbot 客户端为 Apache web 服务器启动证书自动化操作。

尽管这些示例使用的是 Certbot,但请注意,DigiCert 支持任何 ACME 客户端或 web 服务器。

注意

有关如何使用 Kubernetes cert-manager 创建和管理 TLS/SSL 证书的说明,请参阅使用 Kubernetes 配置证书管理器和 DigiCert ACME 服务

在开始之前

  • 确保您已经按照软件提供商的指南安装并配置了首选 ACME 客户端。

  • 在 CertCentral 中为首选 ACME 客户端设置 ACME 目录 URL。请参阅 使用第三方 ACME 客户端进行主机自动化

  • 为 web 服务器安装证书所需的根权限。

Certbot:颁发和安装证书

如果您安装了 certbot-auto 脚本,请将命令中的 certbot 替换为 ./certbot-auto。如果 certbot-auto 的路径未添加到服务器的 PATH 配置,您可能要指定该路径。

注意

ACME 错误代码:ACME 返回的错误和消息与在 CertCentral API 中返回的错误和错误消息相同。有关错误代码及其含义的列表,请参阅错误

  1. 在 web 服务器上打开终端会话,例如使用 SSH。

  2. 看到终端提示后,使用 CertBot 和下面的命令句法申请证书:

    • 确保将 YOUR-KEY-IDENTIFIER 替换为外部帐户绑定 KID。

    • 确保将 YOUR-HMAC-KEY 替换为外部帐户绑定 HMAC 密钥。

    • 务必将 YOUR-ACME-URL 替换为之前创建的 ACME 目录 URL。

    • 请务必将 FQDN 替换为您希望证书保护的完全限定的域名。对于每个 FQDN,请添加一个额外的 -d 选项。

      sudo certbot --apache --register-unsafely-without-email --eab-kid=YOUR-KEY-IDENTIFIER --eab-hmac-key=YOUR-HMAC-KEY --server “YOUR-ACME-URL” -d FQDN

      示例:

      sudo certbot --apache --register-unsafely-without-email --eab-kid=zcwmKf9sCnDUZsbCOgnv1ijy46l6UeEYCavSQQirl-g --eab-hmac-key=RHZraHBXQUxWTEFGdFhndjRVNmV3S3F6c2VNZDM1QzRURGhjdHF3S1NublJjN3dhVUFObzA0SXJwVHBnU2xnRA --server “https://acme.digicert.com/v2/acme/directory/” -d digicert.com -d www.digicert.com
  3. 根据需要自定义输入 Certbot 命令

    有关在这些说明中使用的命令和选项的更多信息,请参阅 Certbot:ACME 自动化选项

  4. 系统将要求您接受服务条款。输入“A” 并按 Enter键。

    DigiCert 目前不实施关于 ACME 的任何附加服务条款。

    注意

    如果您的请求中包括 Cerbot 无法为其找到相匹配的虚拟主机的 FQDN,系统将提示您选择您要在其中安装证书的虚拟主机。在 Apache 上,在虚拟目录列表上检查与 FQDN 匹配的服务器名称。

  5. 选择是否将 HTTP 流量重定向到 HTTPS。

    选择重定向将会禁用对您的网站的 HTTP 访问。

  6. 完成后,您的服务器将显示一条成功消息:“恭喜!您已成功启用您的域...

您的 ACME 证书请求已完成,新颁发的证书已安装到您的 Web 服务器上。访问您的网站以确认证书已就绪。

Certbot:续订和补发证书

续订已过期或已到续订日期的证书。颁发缺失或被吊销的证书。

请使用下面的 Certbot 命令句法进行续订和补发:

sudo certbot --apache --register-unsafely-without-email --eab-kid=YOUR-KEY-IDENTIFIER --eab-hmac-key=YOUR-HMAC-KEY --server “YOUR-ACME-URL” -d FQDN

注意

orderIdaction 附加到 URL,如下所示。

示例(续订):

sudo certbot --apache --register-unsafely-without-email --eab-kid=zcwmKf9sCnDUZsbCOgnv1ijy46l6UeEYCavSQQirl-g --eab-hmac-key=RHZraHBXQUxWTEFGdFhndjRVNmV3S3F6c2VNZDM1QzRURGhjdHF3S1NublJjN3dhVUFObzA0SXJwVHBnU2xnRA --server “https://acme.digicert.com/v2/acme/directory/?orderId=57718329&action=renew” -d digicert.com -d www.digicert.com

示例(补发):

sudo certbot --apache --register-unsafely-without-email --eab-kid=zcwmKf9sCnDUZsbCOgnv1ijy46l6UeEYCavSQQirl-g --eab-hmac-key=RHZraHBXQUxWTEFGdFhndjRVNmV3S3F6c2VNZDM1QzRURGhjdHF3S1NublJjN3dhVUFObzA0SXJwVHBnU2xnRA --server “https://acme.digicert.com/v2/acme/directory/?orderId=57718329&action=reissue” -d digicert.com -d www.digicert.com

注意

对于多年计划帐户:

  • 当订单即将过期时续订证书。

  • 在订单有效期内补发被吊销或即将到期的证书。

Certbot:颁发副本证书

如需提高安全性,简化跨多个服务器上的证书的安装程序,并为每个服务器颁发副本证书。

注意

副本证书中的详细信息与原始证书完全相同。副本证书不需要 DigiCert 吊销之前的证书副本。

使用下面的 Certbot 命令句法颁发副本证书:

sudo certbot --apache --register-unsafely-without-email --eab-kid=YOUR-KEY-IDENTIFIER --eab-hmac-key=YOUR-HMAC-KEY --server “YOUR-ACME-URL” -d FQDN

注意

orderIdaction 附加到 URL,如下所示。

示例:

sudo certbot --apache --register-unsafely-without-email --eab-kid=zcwmKf9sCnDUZsbCOgnv1ijy46l6UeEYCavSQQirl-g --eab-hmac-key=RHZraHBXQUxWTEFGdFhndjRVNmV3S3F6c2VNZDM1QzRURGhjdHF3S1NublJjN3dhVUFObzA0SXJwVHBnU2xnRA --server “https://acme.digicert.com/v2/acme/directory/?orderId=57718329&action=duplicate” -d digicert.com -d www.digicert.com

Certbot:ACME 自动化选项

  • certbot:运行 Certbot 可执行文件。

  • certbot-auto:如果安装了 certbot-auto 脚本,则在 certbot 的位置使用。如果 certbot-auto 的路径未添加到服务器的 PATH 配置,您可能要指定该路径。

  • --apache:指定将为您安装证书的 Apache Certbot 插件。可选。

  • --register-unsafely-without-email:允许您跳过创建 ACME 帐户。由于您的请求已连接到您的 CertCentral 帐户,因此不需要执行此操作。可选

  • --server “ URL :指定要完成您的请求的 ACME 服务器。将 ACME 目录 URL 放在此选项后面的双引号中。

  • --eab-kid=YOURKID:指定密钥标识符,这是公共 URL 的一部分。

  • --eab-hmac-key=YOURHMACKEY:指定用于为响应签名的密钥。

  • -d YOUR DOMAIN:包括在证书中的完全限定的域名。对于证书中的每个 FQDN,包括 –d YOURDOMAIN。如果您不包括此选项,Certbot 将根据您配置的虚拟主机提示您要包括的域。可选。

  • orderId “YOURORDERID:指定现有证书的订单 ID 类型。

  • action “YOURACTION:指定对所请求的证书执行的操作。

您可通过带有 certbot –help 的终端获得 Certbot 命令的完整列表,或在 Certbot 文档网站上查看命令列表。

接下来怎么做?

您的 ACME 证书请求已完成,新颁发的证书已安装到您的 Web 服务器上。访问您的网站以确认证书已就绪。

您可以再次使用您的 ACME 目录 URL 为相同的证书产品和预验证的组织提出更多证书请求。

要为不同产品或组织请求证书,请为该产品或组织创建新的唯一 ACME 目录 URL。请参阅 使用第三方 ACME 客户端进行主机自动化