当前位置:论坛首页 > BUG提交 > Linux面板

【已记录】在网站数量很多的情况下,ssl申请失败

发表在 BUG提交2024-3-13 17:21 [复制链接] 3 199

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:39:20 | 显示全部楼层

这个问题很严重, 网站数据量多了之后申请ssl就一直失败.
目前我们都是自己安装 certbot 手动配置的
使用道具 举报 回复 支持 反对
发表于 2024-3-23 12:23:42 | 显示全部楼层
没有人跟进吗?  非常不方便,
使用道具 举报 回复 支持 反对
发表于 2024-4-17 11:01:07 | 显示全部楼层
您好,感谢您的反馈,已记录
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

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

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

紧急问题处理

论坛响应时间:10分钟

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

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

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

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