当前位置:首页 > nginx

七牛云证书自动延期(acme.sh)

canca18小时前nginx11

完整自动化需要两部分:

  1. acme.sh 自动申请/续期证书

  2. 续期成功后,通过 qiniu deploy hook 自动上传到七牛 CDN 并绑定域名

七牛目前在 acme.sh 中主要是“证书部署目标”,不是 DNS 验证插件。因此证书验证要使用你实际的 DNS 服务商 API,例如 DNSPod、阿里云、Cloudflare。

1. 安装 acme.sh

curl https://get.acme.sh | sh -s email=你的邮箱@example.com

source ~/.bashrc

acme.sh --upgrade --auto-upgrade
acme.sh --set-default-ca --server letsencrypt

安装程序会自动创建每日 cron;可检查:

crontab -l | grep acme.sh

acme.sh 每日检查,但只会在证书进入续期窗口时真正续期。官方说明

2. 使用 DNS API 申请证书

根据域名的权威 DNS 服务商选择一种。

DNSPod

export DP_Id="DNSPod_ID"
export DP_Key="DNSPod_Token"

acme.sh --issue \
  --dns dns_dp \
  -d example.com \
  -d '*.example.com'

阿里云 DNS

export Ali_Key="AccessKeyId"
export Ali_Secret="AccessKeySecret"

acme.sh --issue \
  --dns dns_ali \
  -d example.com \
  -d '*.example.com'

Cloudflare

export CF_Token="Cloudflare_API_Token"
export CF_Zone_ID="Zone_ID"

acme.sh --issue \
  --dns dns_cf \
  -d example.com \
  -d '*.example.com'

API 凭据会由 acme.sh 保存,后续 cron 续期无需重新导出。更多 DNS 服务商配置见 acme.sh DNS API 文档

如果只需要 cdn.example.com,也可以直接申请单域名证书:

acme.sh --issue --dns dns_ali -d cdn.example.com

3. 配置自动部署到七牛云

先在七牛控制台完成:

  • 添加 CDN 域名

  • 开启 HTTPS

  • 在“密钥管理”创建或取得 AK/SK

然后执行:

export QINIU_AK="你的七牛AccessKey"
export QINIU_SK="你的七牛SecretKey"
export QINIU_CDN_DOMAIN="cdn.example.com"
export QINIU_FORCE_HTTPS="true"

acme.sh --deploy \
  -d example.com \
  --deploy-hook qiniu

这里的 -d example.com 必须是申请证书时第一个 -d 指定的主证书名称;QINIU_CDN_DOMAIN 才是七牛控制台中的实际 CDN 加速域名。

首次部署成功后,acme.sh 会保存部署配置。以后 cron 的流程就是:

检查有效期 → DNS API 验证 → 续签成功 → 上传七牛 → 更新 CDN HTTPS 配置

七牛部署 hook 的当前实现支持 AK、SK、多个 CDN 域名以及强制 HTTPS。七牛部署脚本官方 deploy hook 文档

多个七牛 CDN 域名共用证书

export QINIU_CDN_DOMAIN="cdn1.example.com cdn2.example.com"
export QINIU_FORCE_HTTPS="true"

acme.sh --deploy -d example.com --deploy-hook qiniu

如果证书本身的主名称就是 cdn.example.com,可以简化:

export QINIU_AK="你的AK"
export QINIU_SK="你的SK"
export QINIU_FORCE_HTTPS="true"

acme.sh --deploy -d cdn.example.com --deploy-hook qiniu

此时未设置 QINIU_CDN_DOMAIN,部署脚本默认使用 -d 的域名。

4. 验证配置

查看证书续期信息:

acme.sh --info -d example.com

手动重新执行七牛部署,不需要重新签发:

acme.sh --deploy -d example.com --deploy-hook qiniu --debug 2

如果提示找不到 ECC 证书,可以加:

acme.sh --deploy -d example.com --deploy-hook qiniu --ecc --debug 2

检查定时任务整体运行:

~/.acme.sh/acme.sh --cron \
  --home ~/.acme.sh \
  --debug 2

不建议频繁使用 --renew --force,因为会真实重新签发证书,可能触发 CA 频率限制。

最后建议保护配置文件:

chmod 600 ~/.acme.sh/account.conf
find ~/.acme.sh -name '*.conf' -exec chmod 600 {} \;

注意:DNS API 的服务商取决于域名 NS 托管在哪里,不取决于网站是否使用七牛 CDN。七牛 CNAME 只负责流量加速。


扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/901.html

分享给朋友:

“七牛云证书自动延期(acme.sh)” 的相关文章

【转载】SSL证书与Https应用部署小结

【转载】SSL证书与Https应用部署小结

为了提高网站的安全性,一般会在比较敏感的部分页面采用https传输,比如注册、登录、控制台等。像Gmail、网银等全部采用https传输。https/ssl 主要起到两个作用:网站认证、内容加密传输和数据一致性。经CA签发的证书才起到认...…

nginx 反向代理时丢失端口的解决方案,443端口变80

今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题。但一旦设置为监听其他端口,就一直跳转不正常;如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程中端口丢失了。    这里给出一个简短的解决方案,修改nginx的配置文件。一、配置…

nginx if判断&&和||写法

今天在写nginx配置的时候需要用到if判断的&&,但是查了一下文档if并不支持&&的写法,现在将方法记录一下…

Nginx 之 ip_hash 问题

起因公司项目上用到了Asp.Net Core SignalR,由于SignalR需要长链接,所以在进行水平扩展的时,不仅需要Redis做底板,还需要将同一个链接的请求打到同一台机器上;…

详解nginx的root与alias

详解nginx的root与alias

nginx版本: 1.18.0…

会话丢失-NGINX配置之underscores_in_headers

1.描述 问题 NGINX代理某个web服务时,单机情况下也出现不停的要求认证的情况 初步分析…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。