You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yaws开启basic auth后如何实现Letsencrypt证书自动续期

方案1:修改Yaws配置豁免ACME验证路径(推荐,和Nginx/Apache的实现逻辑一致)

Yaws 2.0+版本支持不同路径的鉴权规则独立配置,路径匹配优先级高于全局配置,你只需要调整对应域名的yaws.conf配置即可:

  • 保留原有域名server块的所有基础配置(docroot、端口、证书等)
  • 新增/.well-known/acme-challenge路径的独立配置,关闭该路径的鉴权
  • 原有全局的basic auth配置保留,会对除上述豁免路径外的所有请求生效

修改后的完整配置示例:

<server 你的域名>
    # 原有基础配置保留,比如:
    port = 80
    ssl = on
    certfile = /path/to/your/cert.pem
    keyfile = /path/to/your/privkey.pem
    docroot = /你的站点根目录路径

    # 新增ACME验证路径豁免配置
    <path /.well-known/acme-challenge>
        auth = false
        # docroot和全局保持一致即可,也可以单独指定ACME验证文件的存放目录
        docroot = /你的站点根目录路径
    </path>

    # 原有basic auth配置不变,作用于全站非豁免路径
    <auth>
        realm = "some realm" 
        user = "some_user:some_pw"
    </auth>

    # 其他原有配置保留
</server>

配置修改完成后执行yaws --check验证语法无误,执行yaws --hup重载配置即可生效,无需重启服务。你可以手动访问http://你的域名/.well-known/acme-challenge/测试文件验证,不会弹出身份验证框即代表配置生效,之后直接用Certbot/acme.sh的webroot模式正常续期即可。


方案2:使用DNS验证模式绕开Web服务器配置

如果不想修改Yaws配置,或者你的站点本身不对外暴露80/443端口,可以选择ACME的DNS验证模式:

  • 该模式通过在你的域名解析中添加指定TXT记录完成身份验证,完全不需要访问你的Web服务,也不需要调整任何鉴权规则
  • 主流域名服务商都有对应的acme.sh dnsapi适配,配置好对应服务商的API密钥后即可实现全自动续期,不需要人工干预
  • 即使你的域名服务商没有现成适配,也可以使用手动DNS模式完成验证,适合低频续期的场景

内容的提问来源于stack exchange,提问作者kklepper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:06:03