acme.sh 通过 DNS API 模式申请安全证书

  1. 安装 acme.sh 工具
  2. 申请证书
  3. 安装证书

本文详细介绍了如何在目标服务器上使用 acme.sh 工具(下载地址:https://github.com/acmesh-official/acme.sh),通过 DNS 模式申请证书、安装证书的一系列操作步骤。
DNS 验证:在您的服务器网络环境比较复杂情况下,可以使用 DNS 验证,不需要任何公网 IP,不需要任何服务器,只需要 DNS 的解析记录即可完成验证。

安装 acme.sh 工具

首先,使用 scp 命令将 acme.sh.tar 文件传输到指定服务器的指定目录:

scp acme.sh.tar shumei@ip:/home/shumei/software

这里 shumei 是用户名,ip 是目标服务器的 IP 地址。

然后登录服务器,解压 acme.sh.tar 文件后,进入到 acme.sh 所在的目录,命令如下:

tar -zxvf acme.sh.tar
cd acme.sh

接着,执行以下命令进行安装:

./acme.sh --install -m mail@163.com

其中 -m 参数后的邮箱 mail@163.com 用于生成证书。

申请证书

DNS 方式的可以使用域名解析商提供的 API 自动添加 TXT 记录,且在完成验证后删除对应的记录。这里以 aliyun 为例,具体操作步骤如下:

export Ali_Key="keyStr"
export Ali_Secret="secretStr"
  • 使用 acme.sh 命令申请证书。
acme.sh --issue --dns dns_ali -d example.com -d *.example.com

-d 指定域名,*.example.com 表示通配符域名。也可以仅指定一个域名,如 example.com。

Ali_Key 和 Ali_Secret 会保存在 ~/.acme.sh/account.conf 中,当后期更新证书时会用到。

安装证书

使用 acme.sh 命令将申请到的证书安装到指定目录。–key-file 指定私钥文件路径,–fullchain-file 指定证书文件路径,–reloadcmd
指定安装完成后重新加载 nginx 服务的命令,命令如下:
acme.sh –install-cert -d example.com -d *.example.com
–key-file /etc/nginx/cert/example/cert.key
–fullchain-file /etc/nginx/cert/example/cert.cer
–reloadcmd “service nginx force-reload”

通过以上步骤,我们就完成了从证书申请和安装的整个过程。
相关技术资源链接:
acme.sh 官方文档:https://github.com/acmesh-official/acme.sh/wiki
nginx官方文档:https://nginx.org/en/docs/


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 ethan89@aliyun.com

×

喜欢就点赞,疼爱就打赏