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

2025年10月27日 10:40 响应: 3.13秒 状态: 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

原因分析

SSL/TLS 证书验证失败。这通常发生在客户端(您的应用程序)无法验证服务器(eutils.ncbi.nlm.nih.gov)提供的 SSL 证书的有效性时。

解决方案

这是由于 Node.js(或其他运行代码的环境)的全局 CA 证书存储可能过时,或者您的网络环境(如代理服务器)干扰了证书验证过程。

临时解决方案(不推荐长期使用,仅用于快速调试):

在您的 Node.js 代码中,设置 NODE_TLS_REJECT_UNAUTHORIZED=0 环境变量。

# 在运行您的 Node.js 应用前执行
export NODE_TLS_REJECT_UNAUTHORIZED=0
node your_app.js

推荐解决方案:

  • 更新 Node.js 版本:确保您使用的是较新版本的 Node.js,它通常包含更新的 CA 证书。
  • 更新 CA 证书:如果您的操作系统允许,尝试更新系统的根证书。
  • 检查网络代理:如果您在使用代理,确保代理服务器没有干扰 SSL/TLS 连接。可能需要配置代理以允许 HTTPS 流量或禁用代理进行此特定请求。
  • 提供自定义 CA 证书:如果您的环境有特殊的 CA 证书要求(例如,公司内部证书),您可能需要配置 Node.js 来信任这些证书。
  • 预防措施

  • 避免禁用 SSL 验证:在生产环境中,绝不应禁用 NODE_TLS_REJECT_UNAUTHORIZED。这会使您的应用程序容易受到中间人攻击。

  • 维护运行环境:定期更新运行您的应用程序的操作系统和 Node.js 版本,以确保安全性和兼容性。