V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dream4ever
V2EX  ›  程序员

win-acme 部署证书后 axios 报证书相关错误

  •  
  •   dream4ever · 11 天前 · 713 次点击

    昨天用 win-acme 把服务器上各个网站的 SSL 证书都部署了一遍,当时测试各个网站的页面都能正常打开,查看证书信息确认了也是新部署的证书,就觉得没问题了。

    今天在本地跑 Node.js 程序,结果 axios 调用服务器上的接口时,报 unable to verify the first certificate 这个错误。上网搜索解决方案,有一种方式是在 httpsAgent 的配置中加上 rejectUnauthorized: false 这么一句。

    虽然这种方式能够临时解决问题,本地的 JS 项目这么用没什么问题,但是运行在线上的业务应该不能这么配置吧,不然不就失去了 HTTPS 的意义?

    那么如果要彻底解决这个问题,该从哪里入手呢?在网上搜索的时候,看见 axios 项目有人提过 issue: https://github.com/axios/axios/issues/4847 ,但是这个问题一直没有官方回复。

    第 1 条附言  ·  11 天前
    问题解决了,win-acme 可以选择生成 pem 格式的证书,生成的文件有 4 个,-crt.pem 只是网站本身的证书,-chain.pem 则包含网站证书和中间证书,把后者替换掉前者之后 axios 就不报错了,用 https://www.ssllabs.com/ssltest/index.html 这个网站查了一下也的确是有中间证书了。
    8 条回复    2024-04-22 15:00:35 +08:00
    mMartin
        1
    mMartin  
       11 天前
    https://github.com/go-acme/lego 推荐试试这个项目
    v2yllhwa
        2
    v2yllhwa  
       11 天前 via Android
    检查证书是否包含中间证书,需要证书链完整
    dream4ever
        3
    dream4ever  
    OP
       11 天前
    @mMartin 因为是 Windows 服务器 + IIS 来管理的各个网站,所以用的 win-acme ,这个工具可以自动搞定 IIS 里面各个网站的配置,很省心,其他项目不如这个方便~
    mMartin
        5
    mMartin  
       11 天前
    @dream4ever #3 额 是我唐突了
    dream4ever
        6
    dream4ever  
    OP
       11 天前
    @mMartin 哈哈,没关系
    dream4ever
        7
    dream4ever  
    OP
       11 天前
    @v2yllhwa
    @namelesswryyy 多谢,这就去研究研究。
    Xinu
        8
    Xinu  
       11 天前
    我有一次也遇到了这个问题。证书文件用错了。浏览器能认,但是代码请求不认,找了好久,真的挺坑的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   996 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:53 · PVG 07:53 · LAX 16:53 · JFK 19:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.