错误:无法访问主机:“api.twilio.com”
我正在使用节点twilio,我不断收到"Error: Unable to reach host: "api.twilio.com"
为每个请求。我们已经通过mtr
检查数据包,他们正在达到api.twilio.com。运行在GCE的debian上。
经过几天的挖掘,发现node-twilio模块错误地显示了很多错误:
“错误:无法访问主机:”api.twilio.com“。
以下几行:
var error = null; if (err || (response && (response.statusCode < 200 || response.statusCode > 206))) { error = {}; // response is null if server is unreachable if (response) { error.status = response.statusCode; error.message = data ? data.message : 'Unable to complete HTTP request'; error.code = data && data.code; error.moreInfo = data && data.more_info; } else { error.status = err.code; error.message = 'Unable to reach host: "'+client.host+'"'; } }
发生这种情况是因为您的链中有一个自签名证书,并且基础模块twilio依赖于请求 ,该请求会抛出以下错误: Error: SELF_SIGNED_CERT_IN_CHAIN
但这不是node-twilio引发的错误部分)
有2个修复程序:
1.通过设置,告诉节点j忽略链中的自签名证书:
export NODE_TLS_REJECT_UNAUTHORIZED=0
- find自签名证书并从链中删除它。 这里是一个使用openssl的例子: https : //serverfault.com/questions/590870/how-to-view-all-ssl-certificates-in-a-bundle
参考文献:
https://github.com/request/request
https://github.com/twilio/twilio-node/blob/45858420688854494c2ed476a1997773c33a32a0/lib/Client.js
用https.request忽略node.js中无效的自签名ssl证书?
- LDAP – 仅按名称查找用户
- 从表中select最新的数据
- 不确定Node.js代码是否是asynchronous的
- Passport.js,Express.js和Angular.js路由:它们如何共存?
- Socket.io-client连接到多个服务器
- 有npm重新生成node_modules / .bin符号链接
- node.js lambda函数将logging从sql迁移到elasticsearch,使用队列限制asynchronous调用
- 为什么在使用sails-auth进行validation之后,“req.user”总是在/ user / me控制器中为空?
- Coffeescript和nodeJS中的常量