node.js - restify JSON 客户端返回 DEPTH_ZERO_SELF_SIGNED_CERT 错误

标签 node.js ssl heroku restify

我的服务器在带有 heroku SSL 插件的 heroku 上运行。 服务器是使用以下选项创建的:

name: 'ServerName',
version: '1.0.0',

我这样运行服务器:

    server.listen(process.env.PORT || 5000)

它工作正常,我可以调用我的 api,例如:https://myapp.herokuapp.com/some-path . heroku 上的 SSL 证书是自签名的,因此在网络浏览器中有一个很大的警告,但我可以单击继续并且它有效。

当我想用 restify JSON 客户端调用我的服务器时,创建如下:

var client   = restify.createJsonClient({
    url: 'https://myapp.herokuapp.com'
});

然后像这样调用一些 api client.get('/some-path',...) 然后客户端返回错误:

DEPTH_ZERO_SELF_SIGNED_CERT

我试图在服务器和客户端上设置选项 rejectUnauthorized(作为构造函数选项)但它没有帮助...

最佳答案

我刚刚使用自签名证书在自己的 HTTPS 服务器上进行了测试。客户端的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 选项,测试就会失败并返回 DEPTH_ZERO_SELF_SIGNED_CERT

关于node.js - restify JSON 客户端返回 DEPTH_ZERO_SELF_SIGNED_CERT 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18685035/

相关文章:

Java 和 SSL 证书

ruby-on-rails - Assets预编译需要连接数据库

javascript - 从命令行使用 Node.js

html - 使用 Nodemailer 联系表单

python-2.7 - Flask webservice https 调用导致 ssl 错误

ssl - 通过 https(ssl) 将多个域指向同一个 IP/主域

node.js - 使用 sails.js 和 mongodb 查找子数组中对象 id $ 的文档

node.js - 连接/断开数据库的最佳做法是什么?

function - 我怎样才能用标准sql重写这个pgplsql函数?

java - 使用 xml 输入/输出在现有主机上将 C++ 实现为 Web 服务