Let’s Encrypt 提供了免费的证书,今天正好用来申请就记录了下面的内容:
acme.sh介绍
acme.sh
是一个实现了 acme 协议的脚本,可以从 Let’s Encrypt 生成我们需要的泛解析SSL证书.当然,你用来生产普通证书也是没有问题的.
本文仅对使用域名提供/解析商的 API Token 来自动申请泛域名证书的过程进行讲解,acme.sh
还有很多很强大的功能例如配合 Nginx
或者 Apache
自动申请证书等,请自行查看 github 项目 wiki 发掘
项目链接:Github - Link
安装 acme.sh
curl https://get.acme.sh | sh
# 或者
wget -O- https://get.acme.sh | sh
安装过程不会修改已有的任何系统功能和文件,请放心食用. acme.sh在程序结束后会被自动安装到~/.acme.sh/
目录中
获取API Token
因为acme.sh
支持非常广泛具体 API Token. 支持列表:点我跳转
以DNSPOD为例子:
登录DNSPod,进入顶部导航栏里的用户中心,在左侧的导航栏里,找到安全设置
,看到页面的最下面,有个API Token
.点击查看
->创建API Token
->填写Tokens名称
,复制好ID与Token即可.
申请域名SSL证书
可以临时设置变量 /或者直接修改 ~/.acme.sh/account.conf
文件配置
export DP_Id="API ID"
export DP_Key="Token"
下面我们来正式开始申请泛域名证书,将 esc.show
换成你自己的域名(重要!)
cd ~/.acme.sh/
acme.sh --issue -d esc.show -d *.esc.show --dns dns_dp
注:不同的域名解析商所用命令有细微不同!如果你的提供商不是
DNSPod
,请自行去上面的链接查看!
查看证书
申请完成后屏显会输出证书路径 证书文件名为fullchain.cer
密匙文件名为example.com.key
由于证书默认(在你没安装宝塔等同样调用 acme 签发证书的面板时)会在 acme 的内部目录~/.acme.sh/中生成,不建议直接使用该路径填写至 nginx 等配置中,而是使用–installcert命令 参考
证书续期
Let’s Encrypt 证书的有效期为三个月,acme.sh会每隔60天自动帮你续期,无需你进行任何干预
如果你想强制续期或者取消自动续期可以看 Github链接 参考链接
文章内容引用 https://zhuanlan.zhihu.com/p/75146599