TSD error: self signed certificate in certificate chain

TSD error: self signed certificate in certificate chain

我正在关注 Angular 2 quick start guide,但我卡在了它的开头。

我的公司正在过滤我们的网络连接并修改 SSL 协商。在中间人风格中,他们将自签名证书分配为目标证书的 CA。

因此当我执行第二个命令时

npm install -g tsd
tsd query angular2 --action install

我明白了:

stream.js:75
      throw er; // Unhandled stream error in pipe.
            ^
Error: self signed certificate in certificate chain
    at Error (native)
    at TLSSocket.<anonymous> (_tls_wrap.js:908:38)
    at emitNone (events.js:67:13)
    at TLSSocket.emit (events.js:163:7)
    at TLSSocket._finishInit (_tls_wrap.js:496:8)

有人知道禁用自签名证书验证的方法吗?

先提供一点信息:如果您只是想学习 AngularJS,这可能不是开始使用 TypeScript 的最佳方式。如果是这种情况,请尝试 tutorial on angularjs.org,它使用 JavaScript 和 angular-seed。

无论如何,如果你想使用 tsd,你必须编辑你的 tsdrc 文件(在你的用户的主目录中),设置代理,也许,关闭 strictSSL。参见 https://github.com/DefinitelyTyped/tsd#tsdrc

按照此文档,这是您肯定需要添加到 tsdrc 文件中的内容:

{
    "proxy": "http://proxy.example.com:88",
    "strictSSL" : false
}

编辑:我也不认为这是 npm 问题。所以请更新您的问题。

对于 yarn 发生非常相似的错误:

error An unexpected error occurred:
"https://registry.yarnpkg.com/generator-jhipster: self signed
certificate in certificate chain".

之后
export NODE_TLS_REJECT_UNAUTHORIZED=0

我得到:

error An unexpected error occurred: "https://registry.yarnpkg.com/generator-jhipster: SSL Error: SELF_SIGNED_CERT_IN_CHAIN".

最后解决方案,下面的纱线现在很乐意接受我公司代理的中间人攻击。

export NODE_TLS_REJECT_UNAUTHORIZED=0
yarn config set strict-ssl false --global