{ "headers": { "accept": "application/json,text/html,application/xhtml+xml,appli...

2025年10月27日 10:57 响应: 3.19秒 状态: success

🚨 错误信息

{ "headers": { "accept": "application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, */*;q=0.7" }, "method": "GET", "uri": "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi", "gzip": true, "rejectUnauthorized": true, "followRedirect": true, "resolveWithFullResponse": true, "followAllRedirects": true, "timeout": 300000, "qs": { "db": "pubmed", "retmode": "text", "rettype": "medline", "retmax": "10000", "WebEnv": "MCID_68fedb8405072cd578065eca", "query_key": "1", "api_key": "sk-nRY0KCKCOXUFUr66dFLnY92jXcfzK3585KqkgnOweMIstU8m" }, "encoding": null, "json": false, "useStream": true }

🤖 AI解决方案

错误分析

Error: unable to verify the first certificate

  • 错误翻译
  •     错误:无法验证第一个证书
        
  • 原因分析
  • Node.js 在进行 HTTPS 请求时,无法验证远程服务器提供的 SSL/TLS 证书链。这通常是由于本地环境缺少必要的根证书、证书链不完整,或者服务器证书配置问题导致。

  • 解决方案

  • 在发出请求的代码中,将 rejectUnauthorized 的值从 true 修改为 false

        {
            "headers": {
                "accept": "application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, */*;q=0.7"
            },
            "method": "GET",
            "uri": "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi",
            "gzip": true,
            // "rejectUnauthorized": true, // 禁用此行
            "rejectUnauthorized": false,  // 启用此行
            "followRedirect": true,
            "resolveWithFullResponse": true,
            "followAllRedirects": true,
            "timeout": 300000,
            "qs": {
                "db": "pubmed",
                "retmode": "text",
                "rettype": "medline",
                "retmax": "10000",
                "WebEnv": "MCID_68fedb8405072cd578065eca",
                "query_key": "1"
                // "api_key": "sk-nRY0KCKCOXUFUr66dFLnY92jXcfzK3585KqkgnOweMIstU8m" // 已隐藏敏感信息
            },
            "encoding": null,
            "json": false,
            "useStream": true
        }
        

    注意:将 rejectUnauthorized 设置为 false 会降低安全性,因为它会绕过证书验证。这仅适用于您信任该服务器且能接受相关安全风险的情况。

  • 预防措施

1. 更新 Node.js 和 npm/yarn:确保您的 Node.js 版本是最新稳定版,并更新包管理器,以获取最新的根证书。
2. 检查系统时间:不正确的系统时间可能导致证书验证失败,请确保您的系统时间是准确的。