CentOS7 使用 acme.sh 自动申请免费 SSL 证书
安装 acme.sh
下载并执行安装脚本:
刷新 Bash 配置:
重新登录 SSH,查看已安装的 acme.sh 的版本号:
配置命令权限
证书更新后,需要以 root 用户身份强制重启 nginx。如果当前登陆用户无 sudo 命令权限,或者执行 sudo 命令需要密码,需要给当前登陆用户添加免密码执行强制重启 nginx 命令的 sudo 权限。
编辑 sudo 权限配置文件:
在文件底部插入:
Tips:
<user>
为当前登录的系统用户名,acme.sh 将以该用户身份运行。
配置 acme.sh
申请证书
申请证书需要验证域名所有权,可通过 DNS 设置,在域名上添加一条 TXT 解析记录来验证域名所有权,需要使用 Automatic DNS API 来完成证书的自动申请。
前往 How to use DNS API 找到自己的 DNS 服务商对应的操作和命令。
如阿里云:
Tips: 阿里云推荐使用 “子用户AccessKey”,然后只给予子用户 “AliyunDNSFullAccess“ 权限。
如 CloudFlare:
Tips: CloudFlare 命令中的
CF_Account_ID
可在登陆 CloudFlare 后,在顶部导航中点击域名名称,在Overview
页面右边栏底部Account ID
获取。
中间会倒计时等待两分钟等待解析生效,生成的证书会以第一个域名来命名。
保存证书
在当前用户目录下创建保存证书的目录:
保存证书并强制重启 nginx:
Let’s Encrypt 证书有效期为 90 天,目前在 60 天后,acme.sh 会自动执行以上命令重新申请证书,并强制重启 nginx。
命令测试
测试自动更新证书命令是否可以成功执行(不会更新证书):
管理 acme.sh
卸载 acme.sh
升级 acme.sh
参考文献
Last updated
Was this helpful?