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

标签 node.js ssl sails.js

我在 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'
};

如果这不起作用,您可能想看看一些事情:

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

关于node.js - 如何使用 .crt 文件在sails.js 中配置https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19942545/

相关文章:

Magento SSL : browsers alert to insecure content

jquery - 风 sails :how to avoid same name while uploading a file

javascript - session 不保存在函数调用内

node.js - 如何在mongodb的node.js应用程序中包含和使用connection.js文件

javascript - 为什么 global.module 在文件中未定义,但在 Node REPL 中它是全局对象?

ssl - 如何让 Certbot 禁用某个密码

c# - 如何允许服务器同时接受 SSL 和纯文本(不安全)连接?

node.js - 禁用未找到 eslint 规则的警告消息

node.js - 第二个用户不创建

MySQL ORM 的 Node.js 选项