当前位置:论坛首页 > Linux面板 > 建议

nginx环境下ssl申请要等到nginx配置文件重载生效之后再验证

发表在 Linux面板2024-1-25 19:30 [复制链接] 1 275

本帖最后由 yar999 于 2024-1-25 19:32 编辑

nginx环境下ssl申请建议修改为需要等到nginx配置文件重载生效之后再访问验证文件.

1. 问题介绍:

不知道从哪个版本开始,宝塔的nginx环境下,申请ssl的验证文件的内容返回变成nginx那边直接返回内容了, 比如某个nginx虚拟主机添加了下面的内容:
    #CERT-APPLY-CHECK--START
    # 用于SSL证书申请时的文件验证相关配置 -- 请勿删除
    include /www/server/panel/vhost/nginx/well-known/abc.conf;
    #CERT-APPLY-CHECK--END


/www/server/panel/vhost/nginx/well-known/abc.conf具体的内容类似下面的:

if ($request_uri ~ "^/\.well-known/acme-challenge/GRp2K2NhFc1ngLB78xmg1BW3lr46g_il6t-ZYYJ8Fvc.*"){
    return 200 "GRp2K2NhFc1ngLB78xmg1BW3lr46g_il6t-ZYYJ8Fvc.sA3oj-aC__XMRTAC3Y9JxhB4evgIg1mJsTmPISELmLE";
}


2. 导致的问题

/www/server/panel/vhost/nginx/well-known/abc.conf 会在每次申请ssl的时候临时修改, 且修改之后还需要重载nginx配置, 问题就出现在这里.


如果访问验证文件是在nginx重载生效之前,100% 会验证失败,导致ssl申请失败.
如果访问验证文件是在nginx重载生效之后,则会通过验证,成功申请ssl.


实际生产环境下服务器负载高或者nginx当前比较繁忙无法立刻重载,都会导致访问验证文件在nginx重载生效之前发生.进而导致ssl申请失败.


4. 建议


(1) 建议修改程序等待nginx重载生效之后再访问验证文件
(2) 不让nginx返回验证文件的内容, 直接访问网站根目录下对应的验证文件
(3) 指定一个固定的目录生成验证文件,做个 .well-known/acme-challenge 的别买到那个固定目录 (directadmin面板好像就是这样操作的)


建议(2),(3)不需要重载nginx配置文件,直接访问验证文件的内容就没有这个问题.

使用道具 举报 只看该作者 回复
发表于 2024-3-13 17:16:36 | 显示全部楼层
每人跟进吗? 这是个bug,在网站特别多的时候申请ssl一直失败
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表