强制重试在Nodejs中获取证书

时间:2015-09-23 19:49:55

标签: node.js

我有一个节点js应用程序,并在更新后收到以下错误:

events.js:85  
      throw er; // Unhandled 'error' event  
            ^  
Error: certificate not trusted  
    at Error (native)  
    at TLSSocket.<anonymous> (_tls_wrap.js:929:36)  
    at TLSSocket.emit (events.js:104:17)  
    at TLSSocket._finishInit (_tls_wrap.js:460:8)

我想知道是否有一种方法可以让节点重试获取已经更新并且应该工作的SSL证书。我认为我的服务器缓存使用旧的URL或其他东西,从而获取无效的证书。或者这是一个需要等待24小时才能上网的问题。

1 个答案:

答案 0 :(得分:0)

没有问题“获取证书” - 此错误告诉您远程服务器提供的证书(在每个SSL连接开始时发生的事情)是:

  • 未由受信任的证书颁发机构签名
  • 缺少必要的中间证书
  • 过期

在这种情况下,重试肯定会导致完全相同的错误。

请记住,节点不使用操作系统的根CA存储;它来了bundled with its own trust store。如果服务器的证书未由其中一个CA签名,或者如果您在MITM SSL连接的恶意网络上,那么您的连接将失败。

如果这是https连接,我首先使用浏览器检查远程服务器提供的证书。