请教 Nginx 时完整的 SSL 刷新教程或者脚本,例如证书已经申请,前辈一般是怎么做的
![]() | 1 Tink PRO 什么意思?没太看懂需求,按我的理解,证书申请好的时候触发 webhook ,然后 nginx -s reload ? |
![]() | 2 skiy 63 天前 acme.sh 支持 hook 。有更新证书之后,执行 hook 。参数是: --reloadcmd <command> Command to execute after issue/renew to reload the server. |
![]() | 3 zdking08135 63 天前 |
4 Daybyedream 63 天前 配置路径 更新进去新的?然后 -s reload |
5 dcsuibian 63 天前 我用 caddy ,基本就不用担心 HTTPS 证书了 |
![]() | 6 mohumohu 63 天前 搞这么复杂干嘛,反正证书一般都是提前续期的,每天定期 systemctl restart 不就好了,跟 relaod 有何区别 |
![]() | 7 defunct9 63 天前 via iPhone lego |
8 dfdd1811 63 天前 acme 申请证书,nginx 配置写死证书位置。acme 自动续证书,一般也不管 |
9 gujiwork 63 天前 我都是用 https://ssl.dnsjia.com ,首次配置好,后续都是自动更新 |
![]() | 10 sunny2580839896 63 天前 docker acme 不能运行的时候生成证书,必须要运行后再进入容器使用命令生成 |
![]() | 12 defunct9 63 天前 哦哦,真不是。现在更新证书我只用 lego ,连宝塔的证书更新我都用 lego 了 |
13 PerFectTime 63 天前 |
![]() | 14 Foxkeh 63 天前 @PerFectTime 没有恶意哈哈,上面的大哥很久没说他的口头禅了 |
![]() | 15 YummyCocoa 63 天前 看看这个 acme.sh 的视频使用教程满不满足需要: https://www.bilibili.com/video/BV1kxNAenEfm/ |
![]() | 16 defunct9 63 天前 哈哈,开 ssh ,让我上去 lego |
![]() | 17 skiy 63 天前 via iPhone @sunny2580839896 外部 exec 就行了,就是无法刷新 nginx 。不过我自己写命令行监听 ssl 目录,当有更新时,再刷新 nginx 。 |
![]() | 18 FrankFang128 63 天前 这些教程没有考虑墙的问题,你如果用的是国内云机器,那么你最好使用 dns 来鉴权,阿里云支持命令行来新增 dns 解析,有对应的插件 |
![]() | 19 jiangzm 63 天前 1 、自动生成证书到固定路径 ``` export CF_Token="你的 Cloudflare API Token" export CF_Account_ID="你的 Account ID" acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf ``` 2 、Nginx 配置上述证书路径 ``` acme.sh --install-cert -d example.com --key-file /etc/nginx/ssl/example.com.key --fullchain-file /etc/nginx/ssl/example.com.cer --reloadcmd "systemctl restart nginx" ``` 3 、每天定时或生成证书时 Reload Nginx ``` # 查看定时任务 crontab -l 0 4 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null ``` |
![]() | 20 brucewsl 63 天前 allinssl WEB 界面的,自动更新并部署证书 |
21 kingwrcy 63 天前 用这个 https://github.com/certimate-go/certimate 谁用知道 很强大 基本支持了市面上所有用到 ssl 的地方了 |
![]() | 22 realpg PRO 我有一台专门的证书签发服务器 因为域名太多了(2 万多个) 其中一个举例: acme.sh --issue --server google --keylength ec-384 --dns dns_ali88 --fullchain-file /etc/ssl/xy-ali-all/wildcard.ecc.crt --key-file /etc/ssl/xy-ali-all/wildcard.ecc.key --reloadcmd /etc/ssl/post-cert/xy-ali-all.sh -d "****" -d "****" --days 85 xy-ali-all.sh: #!/bin/bash service nginx reload /usr/bin/python /etc/ssl/post-cert/aliyun_upload_ssl_cert.py \ "xy-group3-auto" \ "xy-ali-all" \ "wildcard.ecc.crt" "wildcard.ecc.key" /usr/bin/python /etc/ssl/post-cert/ct-elb-upload.py xygroup3-ecc-auto xy-ali-all wildcard.ecc.crt wildcard.ecc.key >> /etc/ssl/post-cert/ctelb-logs.txt scp -r /etc/ssl/xy-ali-all/* C141WEB:/etc/ssl/xy-ali-all/ scp -r /etc/ssl/xy-ali-all/* XY3M:/etc/ssl/xy-ali-all/ scp -r /etc/ssl/xy-ali-all/* XY5M:/etc/ssl/xy-ali-all/ ssh C141WEB 'service nginx reload' ssh XY3M 'service nginx reload' ssh XY5M 'service nginx reload' |
![]() | 23 gesse 63 天前 ``` export MYDOMAIN=<YOUR DOMAIN> # 生成证书 mkdir /etc/ssl/$MYDOMAIN cat <<EOF > /etc/ssl/$MYDOMAIN/reloadcmd.sh #!/bin/bash nginx -s reload EOF chmod +x reloadcmd.sh acme.sh --install-cert -d $MYDOMAIN \ --cert-file /etc/ssl/$MYDOMAIN/cert.pem \ --fullchain-file /etc/ssl/$MYDOMAIN/fullchain.pem \ --key-file /etc/ssl/$MYDOMAIN/privkey.pem \ --ca-file /etc/ssl/$MYDOMAIN/chain.pem \ --reloadcmd /etc/ssl/$MYDOMAIN/reloadcmd.sh ``` 这个时候证书必要文件+reload 文件都在`/etc/ssl/$MYDOMAIN`目录下,需要 reload 什么软件、给哪个软件重新加载配置直接修改里面的 reloadcmd.sh 文件就行 |