我在 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谁能指出我正确的方向?
最佳答案
我体验过您用于配置 express 的语法不适用于较新版本的sails,因此我对其进行了更新,它适用于自签名证书。我将代码移动到 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'
};
如果这不起作用,您可能想看看一些事情:
- 如果您在端口 443 上运行,则需要调用“sudosails lift”
- 文件路径必须有效(在我的情况下,ssl 目录位于项目根目录中)
- 文件的文件权限必须是可读的(您示例中的“etc”通常只能由 root 用户读取/执行)
关于node.js - 如何使用 .crt 文件在sails.js 中配置https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19942545/