Node.js request CERT_HAS_EXPIRED 错误解决方案

在使用 Node.js 进行 web 开发时,经常会用到 request 包来发送 HTTP 请求。然而,有时候我们可能会遇到如下错误:

------ ----------- --- -------
    -- --------------------- ----------------------
    -- -------- ------------------
    -- -------------- -----------------
    -- --------------------- --------------------

这个错误提示表明请求的 SSL 证书已经过期,导致了请求失败。

解决方案

方案一:忽略证书验证

我们可以通过设置 rejectUnauthorized 选项为 false 来忽略证书验证,但是这样做会带来安全风险,因此不推荐在生产环境中使用。

----- ------- - -
  ---- ----------------------
  ------------------- -----
--

---------------- --------------- --------- ----- -
  -- ---
---

方案二:更新证书

如果证书已经过期,我们需要联系网站管理员更新证书。如果是自己的网站,我们可以使用免费的 Let's Encrypt 证书或购买商业 SSL 证书,具体操作可以参考相关文档。

方案三:手动指定证书

如果证书没有过期,但是我们仍然遇到了该错误,可能是因为证书链上的某个证书不受信任。此时,我们可以手动指定证书链:

----- -- - --------------
----- ------- - -
  ---- ----------------------
  --- -----------------------------------
  ----- -------------------------------------
  ---- -----------------------------------
--

---------------- --------------- --------- ----- -
  -- ---
---

总结

在使用 Node.js 进行 web 开发时,我们可能会遇到 CERT_HAS_EXPIRED 错误。为了解决这个错误,我们可以忽略证书验证、更新证书或手动指定证书。其中,忽略证书验证虽然简单,但也带来了一定的安全风险,因此建议只在开发环境中使用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/30890