无法在NodeJS / expressJS上设置已签名的SSL证书

时间:2013-06-25 10:13:43

标签: node.js ssl https express

我正在尝试设置签名证书以在nodejs上设置HTTPS服务器。 但我一直在chrome中遇到以下错误(在其他浏览器上也是如此)。

"Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error."

当我使用自签名证书运行相同的代码时,它运行正常。

然后我运行openssl验证,似乎证书没问题。

$ openssl verify -CAfile ./ca.crt server.crt
server.crt: OK

这是我使用签名证书运行它的方式:

    var privateKey  = fs.readFileSync('sslcert/server.key').toString();
    var certificate = fs.readFileSync('sslcert/server.crt').toString();
    var ca = fs.readFileSync('sslcert/ca.crt').toString();
    var credentials = {key: privateKey, cert: certificate, ca: ca};

    //Start Server
    https.createServer(credentials, app).listen(httpsPort, function () {
        console.log("Listening on port " + httpsPort + ' (https)');
    });

1 个答案:

答案 0 :(得分:0)

我发现了这个问题,我的错误是server.key与server.crt不匹配。 一个简单的测试发现了它。

请参阅:http://www.madboa.com/geek/openssl/#cert-test

openssl s_server -cert mycert.pem -www