我正在nodeJS上运行sailsJS并且我正在尝试设置HTTPS,但是我似乎陷入困境。我可以在http://example.com:443访问我的网站,但不能访问https://example.com
这个问题类似于how to configure https in sails.js,除了我没有.pem文件,而是我从Media Temple的QuickSSL获得的.crt和.key文件。
这就是我在 config / bootstrap.js
中的内容module.exports.bootstrap = function (cb) {
var fs = require('fs');
sails.config.express.serverOptions = {
key: fs.readFileSync('/etc/ssl/private/mysite.com.key'),
cert: fs.readFileSync('/etc/ssl/crt/mysite.com.crt'),
ca: [fs.readFileSync('/etc/ssl/crt/mysite.com-geotrust.crt')]
};
cb();
};
我在 config / local.js
中将端口号设置为443有人能指出我正确的方向吗?
答案 0 :(得分:3)
我已经体验过,您用来配置快递的语法不适用于较新版本的风帆,所以我更新了它并使用自签名证书。我将代码移动到local.config文件,因为它实际上是一个环境设置......我没有尝试过的一件事就是证书颁发机构。
以下是我的config.local文件:
var fs = require('fs');
module.exports = {
express: { serverOptions : {
key: fs.readFileSync('ssl/mysite.key'),
cert: fs.readFileSync('ssl/mysite.com.crt')
}
},
port: process.env.PORT || 443,
environment: process.env.NODE_ENV || 'development'
};
如果这不起作用,你可能想看一些事情:
答案 1 :(得分:1)
sailsJS中SSL的官方文档仍然有效,但我在deployment page上发现了这一点。在 config / local.js
中module.exports.port = 80;
module.exports.environment = 'production';
module.exports.ssl = {
cert: 'path/to/cert',
key: 'path/to/key'
};
快递和sailsJS已经发生了很大的变化。所以你应该尝试更新的例子。我在这方面找不到很多例子。
答案 2 :(得分:1)
只是添加一些配置选项到其他人已提到的我要添加的内容,您可以指定要使用的密码(在那些不应与!
一起使用的密码之前):
express: { serverOptions : {
key: fs.readFileSync('ssl/key.pem'),
cert: fs.readFileSync('ssl/cert.pem'),
ciphers: "DHE-DSS-AES256-GCM-SHA384:DHE-DSS-AES256-SHA:AES256-GCM-SHA384:DHE-DSS-AES128-SHA:DHE-DSS-AES128-SHA256:AES256-SHA256:AES128-GCM-SHA256:!AES256-SHA",
honorCipherOrder: true // this is necessary to make the ciphers order matter
}
}
您还可以传递节点的tls文档页面中陈述的其他选项:http://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener。
答案 3 :(得分:0)
答案 4 :(得分:0)
作为0.9到0.10的更新,local.js文件现在应该有
ssl : {
key: fs.readFileSync(‘server.key’),
cert: fs.readFileSync(‘server.crt’)
}
而不是
express : {
serverOptions : {
key: fs.readFileSync('ssl/server.key'),
cert: fs.readFileSync('ssl/server.crt')
}
};