Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js和express及生产ssl证书_Node.js_Ssl_Ssl Certificate - Fatal编程技术网

Node.js和express及生产ssl证书

Node.js和express及生产ssl证书,node.js,ssl,ssl-certificate,Node.js,Ssl,Ssl Certificate,我在使用node.js实现SSL证书时遇到问题 localhost一切正常,但一旦我转到Ubuntu服务器,就会出现多个问题 我已最小化为以下代码。 证书(.crt)和密钥(.key)位于证书目录中,名称类似于localhost.key或exampleSSLServer.crt。 我正在使用RapidSSL证书,并且被告知我还需要包含中间证书 function serverSSL(host,port,intermediate) { var https = require('https

我在使用node.js实现SSL证书时遇到问题

localhost一切正常,但一旦我转到Ubuntu服务器,就会出现多个问题

我已最小化为以下代码。
证书(.crt)和密钥(.key)位于证书目录中,名称类似于localhost.key或exampleSSLServer.crt。 我正在使用RapidSSL证书,并且被告知我还需要包含中间证书

function serverSSL(host,port,intermediate) {
    var https   = require('https');
    var fs      = require('fs');
    var express = require('express');
    var app = express();
    var httpsOptions = {
        key:  fs.readFileSync('certificates/' + host + '.key'),
        cert: fs.readFileSync('certificates/' + host + '.crt')
    };
    if (intermediate) {
        httpsOptions.ca = [fs.readFileSync('certificates/' + intermediate + '.crt')];
    }
    var server = https.createServer(httpsOptions, app).listen({
        port:  port,
        host: host
    }, initServer);

    function initServer() {
        var host = server.address().address,
            port = server.address().port;
        console.log(
          'Example app listening at https://%s:%s', host, port);
    }

    app.get('/hello', function (req, res) {
        var msg = 'Hello SSL';
        console.log(msg);
        res.send(msg);
    });
}
我也试过两个不同的电话

  • serverSSL('localhost',8445)
  • serverSSL('exampleSSLServer.com',8445,'intermediate')
  • localhost工作正常,但当我使用服务器时,会出现以下堆栈错误:

    Error: listen EADDRNOTAVAIL 52.xxx.xxx.xxx:8445
        at Object.exports._errnoException (util.js:873:11)
        at exports._exceptionWithHostPort (util.js:896:20)
        at Server._listen2 (net.js:1237:19)
        at listen (net.js:1286:10)
        at net.js:1395:9
        at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:64:16)
        at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:83:10)   
    
    如果我去掉主机参数,那么它不会失败,但也不会响应。 我稍微修改了代码,使用了http和https,一切似乎都很好。 另外,我尝试了许多不同的端口,同样的问题也发生了

    他们的SSL证书可能有问题,但我没有简单的调试方法。我很乐意尝试另一种工具


    在任何情况下,如有任何帮助,我们将不胜感激。

    我从CheapSSL Security(cheapsslsecurity.com)获得以下信息您好,以我们提供的价格,我们无法支持Node.js。由系统管理员正确配置和安装证书。我非常怀疑RapidSSL是否会为Node.js提供技术支持,因为它的安装非常复杂。保罗很高兴知道他们支持自己的产品。