restify JSON客户端返回DEPTH_ZERO_SELF_SIGNED_CERT错误
我有服务器与heroku SSL插件在heroku上运行。 服务器是用这个选项创build的:
name: 'ServerName', version: '1.0.0',
而我运行这样的服务器:
server.listen(process.env.PORT || 5000)
它工作正常,我可以打电话给我的API例如: https : //myapp.herokuapp.com/some-path 。 heroku上的SSL证书是自签名的,所以在浏览器中有一个很大的警告,但我可以点击继续,它的工作原理。
当我想用restify JSON客户端调用我的服务器时,创build如下:
var client = restify.createJsonClient({ url: 'https://myapp.herokuapp.com' });
然后调用一些像这样的client.get('/some-path',...)
然后客户端返回错误:
DEPTH_ZERO_SELF_SIGNED_CERT
我试图设置选项rejectUnauthorized
服务器和客户端(作为构造选项),但它并没有帮助…
我刚刚使用自签名证书在自己的HTTPS服务器上进行了testing。 rejectUnauthorized
在客户端应该为你解决
var restify = require('restify'), client = restify.createJsonClient({ url: 'https://127.0.0.1/booking', rejectUnauthorized: false }), assert = require('assert'); describe('/booking/ component\'s JSON-HAL HTTP API description', function () { it('responds with status 200', function (done) { client.get('/', function (error, request, response) { assert(!error); assert.strictEqual(response.statusCode, 200); done(); }); }); });
一旦我删除了rejectUnauthorized
选项,testing就会以DEPTH_ZERO_SELF_SIGNED_CERT
失败。
对于我rejectUnauthorized
没有工作。 最后,我结束了:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
它的工作原理
- 如何将MongoDB连接到Mongoose上的Heroku?
- 使用NodeJS在Heroku上validationGoogle Sheet API
- 节点,Heroku,应用程序错误,connect.session()MemoryStore不适用于生产环境
- 在node.js中将数组定义为环境variables
- NodeJS,Express,为什么我应该使用app.enable('trust proxy');
- node.js上的heroku爱好dynamic,限制
- Heroku中的临时文件会发生什么(节点应用程序)
- Heroku中的外部文件中的angular度路由
- Heroku日志:“缺less脚本:开始”,即使是在:(