SSL.com客户现在可以使用流行的ACME协议来请求和撤消SSL /TLS 证书。
ACME(自动证书管理环境)是用于自动域验证和X.509证书安装的标准协议,在 IETF RFC 8555。 作为一个文档完善的标准,其中包含许多开源 客户实施,ACME提供了一种轻松的方式来配置网站或 物联网设备 例如带有公共或私人信任的数字证书的调制解调器和路由器,并随着时间的推移使这些证书保持更新。
本指南将向您展示如何:
- 找到并检索使用ACME申请证书所需的凭据。
- 使用Certbot手动请求SSL /TLS 通过的证书 HTTP-01 和 DNS-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帐户。 如果您已经登录,请转到 數據表 标签。
- 点击 api凭证,位于 开发人员与整合.
- 您将需要您的 帐户/ ACME密钥 和 HMAC密钥 请求证书。 点击剪贴板图标(),然后将每个值复制到剪贴板。
- 您还可以通过单击剪贴板图标()复制一个预填充了电子邮件地址,帐户/ ACME密钥和HMAC密钥的Certbot命令。) 旁边的 cli命令下面 ACME 证书机器人。 此预格式化的命令将通过HTTP-01质询方法订购证书。
手动请求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证书类型 及其相应的定价。
- 更改
--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
.
-
)字符。 在这种情况下,您可能需要在创建文件时指定目录,以防止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。 ----------------------------------------------
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.com
和www.example.com
).- 请注意,如果您希望同时保护基本域名和
www
,您必须在Certbot命令中同时包含两者(例如-d example.com -d www.example.com
).
- 请注意,如果您希望同时保护基本域名和
- 通配符SSL:一个通配符域名,或一个通配符域名加基本域名(例如
*.example.com
和example.com
). - 高级SSL:基本域名和一到三个非通配符子域。 (例外:如上所述,基本域加上
www
子域(没有其他域)将记为基本SSL。)例如:
example.com
和info.example.com
example.com
,www.example.com
及info.example.com
example.com
,www.example.com
,info.example.com
及store.example.com
- 多域UCC / SAN SSL:域名的任何其他组合。 例如:
- 基本域名和三个以上的子域
- 两个或多个通配符和/或非子域域名
SSL.com的参与者 经销商和批量购买计划 将会以与其定价层级相关的折扣价计费。
了解更多信息
使用ACME协议(带有或不带有Certbot),您可以做更多的事情。 请参考以下资源以获取更多信息:
在 SSL.com 帐户方面需要更多帮助?
- 您的SSL.com帐户-提交一个 CSR
- 预测试失败?
- 您的SSL.com帐户-验证
- 您的SSL.com帐户-订单
- SSL.com的SWS API –简介
- 您的SSL.com帐户-域
- 支持的Cloud HSM用于文档签名和EV代码签名