如何使用.crt文件在sails.js中配置https

JHA*_*AWN 9 ssl node.js sails.js

我正在nodeJS上运行sailsJS并且我正在尝试设置HTTPS,但是我似乎陷入困境.我可以在http://example.com:443访问我的网站,但不能访问https://example.com

这个问题类似于如何在sails.js中配置https,除了我没有.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();
};
Run Code Online (Sandbox Code Playgroud)

我在config/local.js中将端口号设置为443

谁能指出我正确的方向?

tsl*_*ter 3

我经历过,您用来配置 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'
};
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,您可能需要看看以下几件事:

  1. 如果您在端口 443 上运行,则需要调用“sudo sails lift”
  2. 文件路径必须有效(在我的例子中,ssl 目录位于项目根目录中)
  3. 文件的文件权限必须是可读的(示例中的“etc”通常只能由 root 用户读取/执行)