type
status
date
summary
slug
tags
category
password
icon

acme.sh京东云DNS验证自动续期

acme.sh实现了ACME协议,可以从ZeroSSLLet's Encrypt等 CA 生成免费的证书。
DNS验证方式的真正强大之处在于可以使用域名解析商提供的API自动添加DNSTXT记录,且在完成验证后删除对应的记录,做到无感续期证书。
notion image

一、安装脚本

安装命令:
参考国内服务器安装方式:
查看已注册的 ZeroSSL账号信息

二、配置ApiKey

尝试了下官方说明:
需要在环境变量中添加京东云的AccessKey申请地址
keysecret设置为环境变量
JD_ACCESS_KEY_IDJD_ACCESS_KEY_SECRET 会自动保存在这里 ~/.acme.sh/account.conf, 下次再生成证书时, 可以自动重用。(我试了下设置环境变量没有用,直接去文件里修改吧)
高级选项:默认使用的是 cn-north-1 区域. 目前不需要改动, 如果需要改的话, 再生成证书之前执行:

三、生成证书

acme.sh脚本默认 CA 服务器是 ZeroSSL,有时可能会导致获取证书的时候一直出现:Pending,The CA is processing your order,please just wait.
只需要把 CA 服务器改成 Let's Encrypt 即可,虽然更改以后还是有概率出现pending,但基本 2-3 次即可成功
生成证书:(注意泛域名需要写在前)

四、配置证书

证书生成好以后,我们需要把证书复制给对应的ApacheNginx或其他服务器去使用。
必须使用 --install-cert 命令来把证书复制到目标文件,请勿直接使用 ~/.acme.sh/ 目录下的证书文件,这里面的文件都是内部使用,而且目录结构将来可能会变化。
Nginx的配置项 ssl_certificate 需要使用 /etc/nginx/ssl/fullchain.cer ,而非 /etc/nginx/ssl/<domain>.cer ,否则 SSL Labs 的测试会报证书链问题(Chain issues Incomplete)。
默认情况下,证书每 60 天更新一次(可自定义)。更新证书后,Apache或者Nginx服务会通过 reloadcmd 传递的命令自动重载配置。
注意:reloadcmd 非常重要。证书会自动申请续签,但是如果没有正确的 reloadcmd 命令,证书可能无法被重新应用到 Apache 或者 Nginx,因为配置没有被重载。
记得修改配置nginxconfig文件,主要是改动ssl_certificatessl_certificate_key为配置地址

五、其他命令

查看已安装证书定时任务信息
目前证书无需任何操作每 60 天自动更新,也可以人为强制续签证书:
查看已安装证书信息
升级脚本到最新版:
Surveyking - 问卷系统typecho创建类知识库网站
Loading...