ACME SSL /TLS 使用Apache和Nginx实现自动化

本操作方法将引导您通过SSL.com通过ACME协议和Certbot客户端为Apache和Nginx设置自动证书安装和续订。

请注意: 您将需要SSH访问和 sudo 您的Web服务器上的特权以遵循这些说明。
请注意:
您可以使用许多其他 ACME 客户端,包括 Kubernetes认证经理,使用 SSL.com 的 ACME 服务。
acme4j  客户端现在可以在此存储库上使用 SSL.com ACME 服务: https://github.com/SSLcom/acme4j
请参阅您的软件提供商的文档,了解其他非 Certbot ACME 客户端的说明。

安装Certbot并检索ACME凭据

  1. SSH进入您的Web服务器。
  2. 确保当前版本 Certbot以及Apache和Nginx插件一起安装在您的Web服务器上:
    • 如果你有 已安装,您可以使用以下命令进行安装:
      sudo snap install-经典certbot
    • If /snap/bin/ 不在你里面 PATH,您还需要添加它或运行如下命令:
      须藤ln -s / snap / bin / certbot / usr / bin / certbot
  3. 从SSL.com帐户中检索ACME凭据:
    1. 登录到您的SSL.com帐户。 如果您已经登录,请转到 卖家专用后台 标签。
      卖家专用后台
    2. 点击 api凭证,位于 开发人员与整合.
      API凭证链接
    3. 您将需要您的 帐户/ ACME密钥HMAC密钥 请求证书。 点击剪贴板图标(),然后将每个值复制到剪贴板。
      帐户/ ACME密钥和HMAC密钥

Apache安装和自动化

使用这样的命令在Apache上安装。 用您的实际值替换ALL CAPS中的值:

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

分解命令:

  • sudo certbot 跑了 certbot 具有超级用户权限的命令。
  • --apache 指定安装用于Apache的证书。
  • --email EMAIL-ADDRESS 提供注册电子邮件地址。 您可以指定多个地址,以逗号分隔。
  • --agree-tos (可选)同意ACME订户协议。 如果您想以交互方式达成共识,则可以忽略此设置。
  • --no-eff-email (可选)表示您不想与EFF共享您的电子邮件地址。 如果您省略此选项,则会提示您选择共享您的电子邮件地址。
  • --config-dir /etc/ssl-com (可选)设置配置目录。
  • --logs-dir /var/log/ssl-com (可选)设置日志目录。
  • --eab-kid ACCOUNT-KEY 指定您的帐户密钥。
  • --eab-hmac-key HMAC-KEY 指定您的HMAC密钥。
  • --server https://acme.ssl.com/sslcom-dv-ecc 指定SSL.com的ACME服务器。
  • -d DOMAIN.NAME 指定证书将覆盖的域名。
请注意: Certbot 2.0.0 或更新版本默认为新证书生成 ECDSA。 以上命令用于 ECDSA 密钥对和证书。 要改为使用 RSA 密钥:

  • 更改 --server 命令中的值 https://acme.ssl.com/sslcom-dv-rsa
请注意: 您可以使用 -d DOMAIN.NAME 在命令中多次选择将域名添加到证书中。 请参阅我们的信息 证书类型和账单 看看域名的不同组合如何映射到 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).

运行命令后,您应该看到如下输出:

将调试日志保存到/var/log/ssl-com/letsencrypt.log选定的插件:Authenticator apache,Installer apache获得新证书执行以下挑战:DOMAIN.NAME的http-01挑战等待验证...清理挑战在/etc/apache2/sites-available/DOMAIN-le-ssl.conf中创建了一个SSL虚拟主机。将证书部署到VirtualHost /etc/apache2/sites-available/DOMAIN-le-ssl.conf中。启用可用站点:/ etc / apache2 / sites-available / DOMAIN-le-ssl.conf将/etc/apache2/sites-enabled/DOMAIN.NAME.conf中的vhost重定向到/etc/apache2/sites-available/DOMAIN-le-ssl.conf中的ssl vhost-- -----------------------------------恭喜! 您已成功启用https://DOMAIN.NAME------------------------------------------ --

Certbot还将创建这样的crontab文件,以自动在30天内过期的任何certbot安装的证书进行自动非交互式续订:

$ cat /etc/cron.d/certbot#/etc/cron.d/certbot:certbot软件包的crontab条目##上游建议每天尝试两次更新##最终,这将是一次机会来验证证书#haven'只能在到期日为30天之内进行更新。 # # 重要的提示! 如果您#运行systemd作为初始化系统,则不会执行此cronjob。 如果您正在运行systemd,则#cronjob.timer函数优先于此cronjob。 有关#的更多详细信息,请参见systemd.timer联机帮助页,或使用systemctl show#certbot.timer。 SHELL = / bin / sh PATH = / usr / local / sbin:/ usr / local / bin:/ sbin:/ bin:/ usr / sbin:/ usr / bin 0 * / 12 * * *根测试-x / usr / bin / certbot -a \! -d / run / systemd / system && perl -e'sleep int(rand(43200))'&& certbot -q更新
请注意: 所有SSL /TLS SSL.com通过ACME发行的证书的有效期为一年。

Nginx安装和自动化

对于Nginx,只需替换 --nginx --apache 在上面显示的命令中:

sudo certbot --nginx --email EMAIL-ADDRESS --agree-tos --no-eff-email --config-dir /etc/ssl-com --logs-dir /var/log/ssl-com --eab -kid ACCOUNT-KEY --eab-hmac-key HMAC-KEY --server https://acme.ssl.com/sslcom-dv-ecc -d DOMAIN.NAME
请注意: Certbot 2.0.0 或更新版本默认为新证书生成 ECDSA。 以上命令用于 ECDSA 密钥对和证书。 要改为使用 RSA 密钥:

  • 更改 --server 命令中的值 https://acme.ssl.com/sslcom-dv-rsa

手动强制续订

如果您希望在即将到期之前手动续订证书,请使用以下命令:

certbot更新--force-renewal-证书名称DOMAIN.NAME

SSL.com提供了多种 SSL /TLS 服务器证书 用于HTTPS网站。

比较SSL /TLS 证书

订阅 SSL.com 的时事通讯

不要错过SSL.com上的新文章和更新

保持信息灵通和安全

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

我们希望收到您的反馈

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