fix: 修改acme.sh证书申请方式为webroot模式
问题:
- 使用--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 <noreply@anthropic.com>
This commit is contained in:
12
install.sh
12
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 "证书申请失败"
|
||||
|
||||
Reference in New Issue
Block a user