SSL /TLS ACME证书颁发和吊销

ACME徽标SSL.com客户现在可以使用流行的ACME协议来请求和撤消SSL /TLS 证书。

ACME(自动证书管理环境)是用于自动域验证和X.509证书安装的标准协议,在 IETF RFC 8555。 作为一个文档完善的标准,其中包含许多开源 客户实施,ACME提供了一种轻松的方式来配置网站或 物联网设备 例如带有公共或私人信任的数字证书的调制解调器和路由器,并随着时间的推移使这些证书保持更新。

ACME不仅仅适用于网站! 借助SSL.com上启用ACME的签发CA,物联网供应商可以轻松管理和自动化SSL /的验证,安装,续订和吊销TLS 具有ACME功能的设备上的证书。

了解有关用于物联网的ACME的更多信息

本指南将向您展示如何:

  • 找到并检索使用ACME申请证书所需的凭据。
  • 使用Certbot手动请求SSL /TLS 通过的证书 HTTP-01DNS-01 挑战方法。
  • 使用Certbot吊销证书。
请注意:
您可以使用许多其他 ACME 客户端,包括 Kubernetes认证经理,使用 SSL.com 的 ACME 服务。
acme4j  客户端现在可以在此存储库上使用 SSL.com ACME 服务: https://github.com/SSLcom/acme4j
请参阅您的软件提供商的文档,了解其他非 Certbot ACME 客户端的说明。

安装Certbot

本指南假定您使用的计算机具有以下功能: Certbot 已安装。 Certbot是由电子前沿基金会(EFF)开发的免费开源工具,可用于请求或撤消SSL /TLS 通过ACME协议从SSL.com获得证书。 Certbot可以在各种平台上运行,包括Linux,macOS和Windows。

  • 如果你有 已安装,您可以使用以下命令进行安装:
    sudo snap install-经典certbot
  • If /snap/bin/ 不在你里面 PATH,您还需要添加它或运行如下命令:
    须藤ln -s / snap / bin / certbot / usr / bin / certbot

如果您需要有关在系统上安装Certbot的更多信息,请参阅EFF的 文件.

检索ACME凭证

在使用ACME申请证书之前,您需要检索您的 帐号密码HMAC密钥 从您的SSL.com帐户。

SSL.com的 经销商和批量购买 合作伙伴可以 生成 ACME 凭证 为他们的客户。 读 这个方法 完整的说明。
  1. 登录到您的SSL.com帐户。 如果您已经登录,请转到 卖家专用后台 标签。
    卖家专用后台
  2. 点击 api凭证,位于 开发人员与整合.
    API凭证链接
  3. 您将需要您的 帐户/ ACME密钥HMAC密钥 请求证书。 点击剪贴板图标(),然后将每个值复制到剪贴板。
    帐户/ ACME密钥和HMAC密钥
  4. 您还可以通过单击剪贴板图标()复制一个预填充了电子邮件地址,帐户/ ACME密钥和HMAC密钥的Certbot命令。) 旁边的 cli命令下面 ACME 证书机器人。 此预格式化的命令将通过HTTP-01质询方法订购证书。复制certbot命令

手动请求SSL /TLS 认证证书

现在,您已经获取了凭据,您可以通过 certbot 命令。 Certbot支持两种域验证(DV)方法:HTTP-01和DNS-01。

HTTP-01挑战方法

HTTP-01 是ACME和Certbot最常用的挑战方法。 当您以这种方式请求证书时,Certbot会生成一个令牌,您可以使用该令牌在您的网站上创建可公开访问的文件。 然后,SSL.com的ACME服务器将通过HTTP验证文件,并在正确的情况下签发签名证书。

要求: HTTP-01方法要求您有权访问Web服务器,并且该站点可通过端口访问 80 通过HTTP。 您还需要 sudo 在计算机上的特权。

要手动获取证书,请使用以下命令。 用您的实际值替换ALL CAPS中的值。 (如上所述,您还可以从门户网站帐户复制并粘贴一个certbot命令来执行此操作):

sudo certbot certonly --manual --server https://acme.ssl.com/sslcom-dv-ecc --config-dir /etc/ssl-com --logs-dir /var/log/ssl-com --同意-tos --no-eff-email --email EMAIL-ADDRESS --eab-hmac-key HMAC-KEY --eab-kid ACCOUNT-KEY -d DOMAIN.NAME

分解命令:

  • sudo certbot 跑了 certbot 具有超级用户权限的命令。
  • certonly 请求检索证书,但不安装它。
  • --manual 指定以交互方式运行Certbot。
  • --server https://acme.ssl.com/sslcom-dv-ecc 指定SSL.com的ACME服务器。
  • --config-dir /etc/ssl-com (可选)设置配置目录。
  • --logs-dir /var/log/ssl-com (可选)设置日志目录。
  • --agree-tos (可选)同意ACME订户协议。 如果您想以交互方式达成共识,则可以忽略此设置。
  • --no-eff-email (可选)表示您不想与EFF共享您的电子邮件地址。 如果您省略此选项,则会提示您选择共享您的电子邮件地址。
  • --email EMAIL-ADDRESS 提供注册电子邮件地址。 您可以指定多个地址,以逗号分隔。
  • --eab-hmac-key HMAC-KEY 指定您的HMAC密钥。
  • --eab-kid ACCOUNT-KEY 指定您的帐户密钥。
  • -d DOMAIN.NAME 指定证书将覆盖的域名。 请注意,您可以使用 -d DOMAIN.NAME 在命令中多次选择将域名添加到证书中。 Certbot将要求您为请求的每个域名创建一个质询文件。 请参阅以下部分 证书类型和账单 下面查看不同域名组合如何映射到 SSL.com证书类型 及其相应的定价。
请注意: Certbot 2.0.0 或更新版本默认为新证书生成 ECDSA。 上面的命令将生成一个 ECDSA 密钥对和证书。 要改为使用 RSA 密钥:

  • 更改 --server 命令中的值 https://acme.ssl.com/sslcom-dv-rsa
  • 地址 --key-type rsa 到命令。
当你第一次运行上面的 certbot 命令,ACME 帐户信息将存储在您计算机上的配置目录 (/etc/ssl-com 在上面显示的命令中。 在以后运行 certbot 时,您可以省略 --eab-hmac-key--eab-kid 选项,因为 certbot 将忽略它们而支持本地存储的帐户信息。

如果您需要将计算机的 ACME 证书订单与不同的 SSL.com 帐户相关联,则应使用以下命令从计算机中删除此帐户信息 sudo rm -r /etc/ssl-com/accounts/acme.ssl.com (或者,如果您省略了可选的 --config-dir 选项, sudo rm -r /etc/letsencrypt/accounts/acme.ssl.com).

当您运行上面的命令时,您应该收到创建验证文件的说明:

-----------------------------------创建一个仅包含以下数据的文件:cr1rsRTImVz_s7HHk7biTQ。 9mOlJPgZ8D97HojOHnhD6hYeZZOPDUDNMxchFUNJQvI并将其在您的Web服务器上通过以下URL提供:http://DOMAIN.NAME/.well-known/acme-challenge/cr1rsRTImVz_s7HHk7biTQ------------ ---------------------按Enter继续

创建文件并将其保存在Web服务器上的某个位置,可以通过端口通过HTTP访问该文件 80 在显示的网址上,然后按 Enter.

请注意: HTTP-01质询可能需要以破折号(-)字符。 在这种情况下,您可能需要在创建文件时指定目录,以防止Shell解释破折号(例如 vim ./-r1rsRTImVz_s7HHk7biTQ).

如果所有信息正确,您应该收到一条确认消息,其中显示证书链和私钥的位置:

重要提示:-恭喜! 您的证书和链已保存在:/etc/ssl-com/live/DOMAIN.NAME/fullchain.pem。密钥文件已保存在:/etc/ssl-com/live/DOMAIN.NAME/privkey.pem。证书将于2021-10-05到期。 要在将来获得此证书的新版本或调整过的版本,只需再次运行certbot。 要以非交互方式更新所有*证书,请运行“ certbot续订”

现在,您可以配置Web服务器以访问新证书和私钥。

DNS-01质询方法

DNS-01 挑战方法比HTTP-01棘手,但在多个Web服务器上使用时更方便。 在这种方法中,Certbot将提供一个令牌,您可以使用该令牌在证书将要保护的域名下创建DNS TXT记录。

要求: DNS-01方法要求您具有为网站的域名创建DNS记录的能力。

以下命令将通过DNS-01质询方法请求DOMAIN.NAME的证书:

sudo certbot certonly --manual --server https://acme.ssl.com/sslcom-dv-rsa --agree-tos --no-eff-email --email EMAIL-ADDRESS --eab-hmac-key HMAC-KEY --eab-kid ACCOUNT-KEY --preferred-challenges dns -d DOMAIN.NAME

请注意: 您可以使用 -d DOMAIN.NAME 在命令中多次选择将域名添加到证书中。 Certbot将要求您为每个请求的域名创建一个单独的DNS TXT记录。 您无需等待每个TXT记录传播就可以按 Enter 直到您完成最后的挑战。 请参阅以下部分 证书类型和账单 下面查看不同域名组合如何映射到 SSL.com证书类型 及其相应的定价。
当你第一次运行上面的 certbot 命令,ACME 帐户信息将存储在您计算机上的配置目录 (/etc/ssl-com 在上面显示的命令中。 在以后运行 certbot 时,您可以省略 --eab-hmac-key--eab-kid 选项,因为 certbot 将忽略它们而支持本地存储的帐户信息。

如果您需要将计算机的 ACME 证书订单与不同的 SSL.com 帐户相关联,则应使用以下命令从计算机中删除此帐户信息 sudo rm -r /etc/ssl-com/accounts/acme.ssl.com (或者,如果您省略了可选的 --config-dir 选项, sudo rm -r /etc/letsencrypt/accounts/acme.ssl.com).

此命令与HTTP-01部分中的命令相同,但添加了 --preferred-challenges dns 选项。 运行命令时,您将收到有关创建DNS记录的说明:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.DOMAIN.NAME with the following value: -87YKoj3sQZB4rVCMZTiifl9QJKYm2eYYymAkpE0zBo Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue

创建DNS TXT记录并等待其传播。 (whatsmydns.net 是检查DNS传播的便捷工具。 请注意,记录名称开头的下划线字符(_)为 必须。 当唱片传播到世界各地时,请按 Enter.

如果您要求使用通配符证书(例如 *.example.com),如果您也想保护基本域名(例如, -d *.example.com -d example.com)。 在这种情况下,您需要创建 具有相同名称的TXT记录(_acme-challenge.example.com).

如果所有信息正确,您应该收到一条确认消息,其中显示证书链和私钥的位置:

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/ssl-com/live/DOMAIN.NAME/fullchain.pem Your key file has been saved at: /etc/ssl-com/live/DOMAIN.NAME/privkey.pem Your cert will expire on 2021-10-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew"

现在,您可以配置Web服务器以访问新证书和私钥。

证书续订(手动)

对于手动颁发的证书(如本指南中所述),只需重复用于请求证书的命令即可完成证书更新。 Certbot确实提供了 renew 子命令,但在尝试将其与请求的证书一起使用时会产生错误。 --manual 选项​​:

sudo certbot更新--force-renewal将调试日志保存到/var/log/ssl-com/letsencrypt.log-------------------------- --------------处理/etc/ssl-com/renewal/DOMAIN.NAME------------------------ ----------------无法选择适当的插件:手动插件不起作用; 您现有的配置可能存在问题。 错误是:PluginError(“非交互式使用手动插件时,必须为--manual-auth-hook提供身份验证脚本。”,)尝试从/ etc / ssl-com /续订证书(DOMAIN.NAME)。 renewal / DOMAIN.NAME.conf产生意外错误:手动插件不起作用; 您现有的配置可能存在问题。 错误是:PluginError('非交互式使用手动插件时,必须提供--manual-auth-hook身份验证脚本。',)。 正在跳过。 所有续订尝试均失败。 无法更新以下证书:/etc/ssl-com/live/DOMAIN.NAME/fullchain.pem(失败)----------------------- ----------------所有更新尝试均失败。 无法更新以下证书:/etc/ssl-com/live/DOMAIN.NAME/fullchain.pem(失败)----------------------- -----------------1个更新失败,0个解析失败

证书吊销

撤销证书 certbot revoke。 用您的实际值替换ALL CAPS中的证书路径(例如, /etc/ssl-com/live/example.com/cert.pem)。 如果未指定自定义 --config-dir--logs-dir 要求原始证书时,请忽略这些选项。

sudo certbot撤消--server https://acme.ssl.com/sslcom-dv-rsa --cert-path /PATH/TO/cert.pem --config-dir / etc / ssl-com --logs-dir / var / log / ssl-com

系统将提示您是否还删除已撤销的证书:

------------------------------------是否要删除证书您刚刚撤销了该证书,以及该证书的所有早期和更高版本? ------------------------------------(Y)es(推荐)/(N )o:Y-------------------------------------删除所有与证书有关的文件DOMAIN.NAME。 ----------------------------------------------
注意:某些用户在尝试使用以下命令吊销证书时可能会遇到此错误 SSL.com的 ACME 端点:Unable to register an account with ACME server. Error returned by the ACME server: Something went wrong. We apologize for the inconvenience.

尝试以下操作来解决错误:
a) 指定证书的私钥路径以签署吊销请求。
示例: --key-path /PATH/TO/privkey.pem
b) 如果您使用自定义目录,请指定您在颁发证书时使用的目录: --config-dir

证书类型和计费

所有SSL /TLS SSL.com通过ACME发行的证书为一年证书。 您将收到(并为其付费)的SSL.com证书类型取决于所请求域名的数量和类型:

  • 基本SSL:一个域名,或域名加 www 子域(例如 example.comwww.example.com).
    • 请注意,如果您希望同时保护基本域名和 www,您必须在Certbot命令中同时包含两者(例如 -d example.com -d www.example.com).
  • 通配符SSL:一个通配符域名,或一个通配符域名加基本域名(例如 *.example.comexample.com).
  • 高级SSL:基本域名和一到三个非通配符子域。 (例外:如上所述,基本域加上 www 子域(没有其他域)将记为基本SSL。)例如:
    • example.cominfo.example.com
    • example.comwww.example.cominfo.example.com
    • example.comwww.example.com, info.example.com store.example.com
  • 多域UCC / SAN SSL:域名的任何其他组合。 例如:
    • 基本域名和三个以上的子域
    • 两个或多个通配符和/或非子域域名

SSL.com的参与者 经销商和批量购买计划 将会以与其定价层级相关的折扣价计费。

了解更多信息

使用ACME协议(带有或不带有Certbot),您可以做更多的事情。 请参考以下资源以获取更多信息:

在 SSL.com 帐户方面需要更多帮助?

感谢您选择SSL.com! 如有任何疑问,请通过电子邮件与我们联系 Support@SSL.com,致电 1-877-SSL-SECURE,或只需单击此页面右下方的聊天链接。 您还可以在我们的网站上找到许多常见支持问题的答案 知识库.
Twitter
Facebook
LinkedIn
Reddit
电邮

保持信息灵通和安全

SSL.com 是网络安全领域的全球领导者, PKI 和数字证书。注册以接收最新的行业新闻、提示和产品公告 SSL.com.

我们希望收到您的反馈

参加我们的调查,让我们知道您对最近购买的想法。