如何在node.js应用程序中正确安装SSL?

时间:2015-02-23 15:52:46

标签: javascript node.js ssl

我在这里遇到问题,当我测试我的SSL时会出现此消息:

Certificate chain is incomplete.

我已经在我的入口点文件中创建了http和https服务器,并且在某些浏览器中运行没有问题,但在其他浏览器中显示的消息显示该站点不安全,因为链不完整。

如何正确安装SSL以使链完整?

我是这样做的:

SSL FOLDER
|- credentials.js
|- site.pem
|- site-cert.pem
|- site-ca.pem

在我的凭证中,我有:

var fs = require('fs');

var credentials = {
    key: fs.readFileSync(__dirname + '/mysite.pem', 'utf8'),
    cert: fs.readFileSync(__dirname + '/mysite-cert.pem', 'utf8'),
    ca: fs.readFileSync(__dirname +  '/mysite-ca.pem', 'utf8'),
    passphrase: 'secretphrase'
};

module.exports = credentials;

在我的切入点我有:

var app = require('../app');
var http = require('http');
var https = require('https');
var credentials = require('./ssl/credentials');

http.createServer(app).listen(3000, app.get('ip'), function() {
   console.log('Running on port 3000, in ' + app.get('env') + ' mode.');
});


https.createServer(credentials, app).listen(443, app.get('ip'), function() {
   console.log('Running on port 443, in ' + app.get('env') + ' mode.');
});

也许我忘记了什么?

我没有解决链条的问题。

1 个答案:

答案 0 :(得分:0)

您可能需要添加链接到根CA证书的中间CA证书。见How to setup EV Certificate with nodejs server

使用在线SSL测试工具检查您的域,看看您的服务器是否正在发送链中的所有证书。