抛弃 freessl,用 acme.sh 自动为网站证书续期

抛弃 freessl,用 acme.sh 自动为网站证书续期

我们都知道 freessl 可以免费的获得最长一年的 SSL 证书。但是这个网站的证书到期以后需要重新申请、更换。这个操作其实是有点烦的。

用 acme.sh 就可以解决这个问题

acme.sh 实现了 acme 协议,可以从 lets encrypt 生成免费的证书。

acme.sh

中文文档
原汁原味的英文文档

它在大多数的服务器系统上都可以使用。是一个很好用的证书签发脚本。
同时,他还能为你的证书自动续期。至于什么时候续、怎么续,都不需要你来关心,因为这一切都是自动的。

usage

安装

使用 root 用户或者有 root 权限的用户安装

curl  https://get.acme.sh | sh

安装完成后,为程序设置别名

alias acme.sh=~/.acme.sh/acme.sh

以后就可以直接使用 acme.sh 作为这个程序的别名来使用了(相当于快捷方式)。

用 DNS 签发和续期

acme.sh 支持大多数的 dns,国内的阿里云、DNSPOD 等均已得到支持。以 DNSPOD 为例,

生成 apiKey 和 ID

登录自己的 DNSPOD,点击右上角的头像弹出菜单,选择“密钥管理”。添加一个密钥,把生成的密钥记录下来。这个密钥只会显示一次,所以要自己保存。

配置环境变量

直接在 CLI 执行下面两条命令,把引号中的内容换成你自己的 id 和 token

export DP_Id="341235"
export DP_Key="1aa994c91fc86b7f4c86cb66fba30416"

签发证书

使用 dns_dp 参数配置为自动模式,将以下两个域名(主域名和泛域名)配置签发证书。

acme.sh --issue --dns dns_dp -d mitkimi.com -d *.mitkimi.com

配置证书

如果你跟我一样使用了 nginx,那么就可以在 server 里配置,参考吃瓜:网站或者服务应该怎么部署? 的最后几段。

acme.sh 会把证书签发到 /root/.acme.sh/你的域名 目录下。例如 /root/.acme.sh/mitkimi.com,配置证书文件为该目录下的 fullchain.cer,密钥为你的域名开头的 .key 文件,例如mitkimi.com.key

acme.sh 还支持使用 nginx 等其他形式去配置。但我觉得用 dns 是最简单的,只要第一次配置过,以后的新配置全程一行命令,无需手动干预,是一个优雅的配置方式。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×