关于IT运维技术的
最佳实践博客网站

使用 acme.sh 脚本自动生成 letsencrypt 免费 https 证书

一、acme wiki

https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E

二、安装 acme.sh

# 一键安装
curl  https://get.acme.sh | sh
cd ~/.acme.sh/

三、如何自动化颁发 letsencrypt https 证书?

1、Webroot模式:

如果您已经运行了Web服务器,则应使用webroot模式。您只需要对Web根文件夹的写访问权限。

acme.sh  --issue  -d cnhzz.com -d www.cnhzz.com  --webroot  /home/wwwroot/mydomain.com/

2、独立模式:

如果您没有Web服务器,也许您使用的是smtp或ftp服务器,那么80端口是空的的。你可以使用独立模式。acme.sh 有一个内置的独立Web服务器,它可以在80端口监听以发出证书。

acme.sh --issue -d cnhzz.com -d www.cnhzz.com --standalone

3、DNS API模式:

如果您的域名服务提供商有api,我们可以使用api自动为您添加txt记录。您的证书将自动颁发和续订。

各种 DNS API 获取方式,几乎包括全互联网的dns提供商了。
https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md

# 先获取api 添加到环境变量中去。 /etc/profile
export Ali_Key="LTAI11123cb6vKb"
export Ali_Secret="21SfqqMn23123QLl5cI13e8"

# 自动化生成
acme.sh --issue --dns dns_ali -d cnhzz.com -d www.cnhzz.com

四、自动安装证书,每60天自动更新一次

前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.

注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.

正确的使用方法是使用 –installcert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:

acme.sh  --installcert  -d  cnhzz.com  --key-file   /usr/local/nginx/conf/ssl/cnhzz.com.key  --fullchain-file /usr/local/nginx/conf/ssl/cnhzz.com.cer --reloadcmd  "service nginx force-reload"

(一个小提醒, 这里用的是 service nginx force-reload, 不是 service nginx reload, 据测试, reload 并不会重新加载证书, 所以用的 force-reload)

Nginx 的配置 ssl_certificate 使用 /etc/nginx/ssl/fullchain.cer ,而非 etc/nginx/ssl/<domain>.cer ,否则 SSL Labs 的测试会报 Chain issues Incomplete 错误。

--installcert 命令可以携带很多参数, 来指定目标文件. 并且可以指定 reloadcmd, 当证书更新以后, reloadcmd会被自动调用,让服务器生效.

5、更新证书

目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.

6、更新 acme.sh

目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.

升级 acme.sh 到最新版 :

acme.sh --upgrade

如果你不想手动升级, 可以开启自动升级:

acme.sh  --upgrade  --auto-upgrade

之后, acme.sh 就会自动保持更新了.

你也可以随时关闭自动更新:

acme.sh --upgrade  --auto-upgrade  0
未经允许不得转载:菜鸟HOW站长 » 使用 acme.sh 脚本自动生成 letsencrypt 免费 https 证书
分享到: 更多 (0)

留下你的脚印

  订阅  
关注动态