From ab577931c3214a6a564336ee770b4583bdc70233 Mon Sep 17 00:00:00 2001 From: WanWanYun Date: Thu, 13 Nov 2025 15:00:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9acme.sh=E8=AF=81?= =?UTF-8?q?=E4=B9=A6=E7=94=B3=E8=AF=B7=E6=96=B9=E5=BC=8F=E4=B8=BAwebroot?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: - 使用--nginx参数时,acme.sh报错"Cannot find config file for domain" - nginx模式需要acme.sh能够识别nginx配置文件格式 解决方案: - 改用--webroot模式,直接使用前端目录作为验证根目录 - webroot模式更可靠,不依赖nginx配置文件解析 - 应用到所有acme.sh方案:Let's Encrypt、ZeroSSL、Buypass 参数变化: - 旧:--nginx - 新:--webroot "${PROJECT_DIR}/frontend" 优点: 1. 不需要解析nginx配置文件 2. 直接利用已经配置好的HTTP服务器 3. 兼容性更好,成功率更高 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- install.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 3150cd1..e99d138 100644 --- a/install.sh +++ b/install.sh @@ -1455,15 +1455,17 @@ deploy_acme_letsencrypt() { return 1 fi - if ~/.acme.sh/acme.sh --issue -d "$DOMAIN" --nginx; then + # 使用webroot模式申请证书(更可靠) + if ~/.acme.sh/acme.sh --issue -d "$DOMAIN" --webroot "${PROJECT_DIR}/frontend"; then print_success "证书申请成功" else print_error "证书申请失败" echo "" print_warning "常见失败原因:" echo " 1. 域名未正确解析到此服务器" - echo " 2. Nginx未正确配置" + echo " 2. Nginx未正确配置或未启动" echo " 3. 80端口被占用或防火墙阻止" + echo " 4. 前端目录权限不足" echo "" return 1 fi @@ -1592,7 +1594,8 @@ deploy_acme_zerossl() { return 1 fi - if ~/.acme.sh/acme.sh --server zerossl --issue -d "$DOMAIN" --nginx; then + # 使用webroot模式申请证书(更可靠) + if ~/.acme.sh/acme.sh --server zerossl --issue -d "$DOMAIN" --webroot "${PROJECT_DIR}/frontend"; then print_success "证书申请成功" else print_error "证书申请失败" @@ -1723,7 +1726,8 @@ deploy_acme_buypass() { return 1 fi - if ~/.acme.sh/acme.sh --server buypass --issue -d "$DOMAIN" --nginx; then + # 使用webroot模式申请证书(更可靠) + if ~/.acme.sh/acme.sh --server buypass --issue -d "$DOMAIN" --webroot "${PROJECT_DIR}/frontend"; then print_success "证书申请成功" else print_error "证书申请失败"