尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【运维开发】acme.sh 安装|签发泛域名SSL证书,宝塔Nginx部署+自动续期

【运维开发】acme.sh 安装|签发泛域名SSL证书,宝塔Nginx部署+自动续期 写在前面本博客仅作记录学习之用部分图片来自网络如需引用请注明出处同时如有侵犯您的权益请联系删除文章目录前言Gitee国内镜像安装acme.sh克隆源码并安装加载环境变量验证安装配置腾讯云API密钥自动DNS验证泛域名证书生成腾讯云API密钥持久化配置腾讯云密钥一键申请根域名泛域名证书证书部署至宝塔Nginx部署操作校验证书文件生成配置证书自动续期Cron定时任务查看定时任务手动测试自动续期逻辑强制手动续签总结互动致谢参考前言大陆服务器直接拉取GitHub安装acme.sh极易超时失败本文使用Gitee国内镜像完整部署通过腾讯云API自动解析验证申请*.域名泛域名证书踩坑解决宝塔证书目录权限不足问题配置定时任务实现90天证书自动续签全程实操命令可直接复制。Gitee国内镜像安装acme.sh官方说明文档https://github.com/acmesh-official/acme.sh/wiki/Install-in-China国内服务器访问Github不稳定直接使用Gitee镜像克隆安装。克隆源码并安装# 拉取Gitee国内镜像仓库邮箱不改也可执行gitclone https://gitee.com/neilpang/acme.sh.gitcdacme.sh ./acme.sh--install-mmyexample.com加载环境变量验证安装安装完成后无法直接识别acme.sh命令重载环境变量# 刷新bash配置查看版本验证是否安装成功source~/.bashrc acme.sh--version成功输出示例配置腾讯云API密钥自动DNS验证泛域名证书生成腾讯云API密钥一般不推荐使用主账户进行操作因为一旦泄露会导致账户的面临无法预测的损失。因此推荐子用户的权限对权限进行限制即便泄露也为无法影响到未授权的部分。新建用户设置权限给个DNS解析就行创建子账户API密钥API密钥只有在创建时可见所有妥善保存同时请勿外泄。持久化配置腾讯云密钥泛域名证书*.你的域名无法使用HTTP文件验证必须DNS解析验证acme.sh内置腾讯云DNS插件dns_tencent。由于后续对宝塔的密钥文件进行更改但需管理员权限sudo acme.sh是行不通的因此建议在root用户进行下列操作将其保存未环境变量。sudosu编辑bash环境变量文件永久保存SecretId、SecretKeynano~/.bashrc文件末尾追加下面两行替换为自己腾讯云密钥exportTencent_SecretIdxxxxexportTencent_SecretKeyxxx保存退出后重载生效source~/.bashrc# 校验环境变量是否写入成功echo$Tencent_SecretId一键申请根域名泛域名证书acme.sh--issue--dnsdns_tencent-d你的域名-d*.你的域名工具会自动调用腾讯云API添加_acme-challenge解析记录自动完成域名校验并签发证书。证书部署至宝塔Nginx宝塔面板证书统一存放目录/www/server/panel/vhost/cert/域名/普通ubuntu用户无该目录写入权限直接执行部署命令会出现权限报错所以提前激活roottouch: cannot touch /www/server/panel/vhost/cert/域名/privkey.pem: Permission denied部署操作root下执行证书部署命令acme.sh--installcert-d域名\--key-file /www/server/panel/vhost/cert/域名/privkey.pem\--fullchain-file /www/server/panel/vhost/cert/域名/fullchain.pem\--reloadcmd/www/server/nginx/sbin/nginx -s reload成功执行日志参考校验证书文件生成查看证书目录文件权限ls-la/www/server/panel/vhost/cert/域名/输出结果配置证书自动续期Cron定时任务acme.sh安装时自动为root生成定时任务每日检测证书有效期剩余30天自动续签自动重载Nginx。查看定时任务crontab-l能看到acme.sh自带定时脚本34 15 * * * /root/.acme.sh/acme.sh --cron --home /root/.acme.sh /dev/null手动测试自动续期逻辑/root/.acme.sh/acme.sh--cron--home/root/.acme.sh未到续期时间输出日志强制手动续签/root/.acme.sh/acme.sh--renew-d域名--force总结总结本文介绍了通过Gitee国内镜像安装acme.sh工具利用腾讯云API实现泛域名证书的自动DNS验证与申请。针对宝塔面板证书目录权限问题提供了root用户部署方案并配置定时任务实现90天自动续签。互动上述内容对你有用吗欢迎在评论区解答上述问题分享你的经验和疑问当然也欢迎一键三连给我鼓励和支持点赞 关注 评论 打赏。致谢欲尽善本文因所视短浅怎奈所书皆是瞽言蒭议。行文至此诚向予助与余者致以谢意。参考[1] https://github.com/acmesh-official/acme.sh/wiki/Install-in-China[2] 腾讯云-创建子账号并授权
返回列表