【问题标题】:Implementing a https server on sailjs在sailjs上实现一个https服务器
【发布时间】:2014-01-30 02:58:08
【问题描述】:

您好,我正在为sailjs 应用程序创建一些rest api。现在我需要使用带有 http-bearer-token 策略的 OAuth2.0 身份验证来访问我的应用程序。所以我希望我的服务器接受 https 连接。任何提示我该怎么做?

【问题讨论】:

    标签: node.js ssl express https sails.js


    【解决方案1】:

    事实证明这很简单,实际上。使用以下内容更新您的 config/local.js

    /**
     * Depencencies
     */
    var fs = require('fs');
    
    module.exports = {
      // ...
      // Here go the port, environment definitions, etc.
      // ...
    
      ssl: {
        key: fs.readFileSync('path_to_your_key.pem'),
        cert: fs.readFileSync('path_to_your_cert.pem')
      }
    };
    

    要在开发环境中使用它,您只需create a self-signed certificate,将这些文件放在config/sslconfig/local.js 中使用

      ssl: {
        key: fs.readFileSync(__dirname + 'ssl/key.pem'),
        cert: fs.readFileSync(__dirname + 'ssl/cert.pem')
      }
    

    【讨论】:

    • 嗨 Bredikin 它工作正常,现在我面临其他几个问题。 1) 我想在sails.js 中同时运行http 和https 的任何提示。 2)我正在使用自签名证书。我向我的电脑展示了它,它在邮递员和 chrome 中工作,但我写了一个 mocha 测试套件,它停止使用 SSL,不知道如何强制 mocha 忽略 SSL 安全参数。
    • @VampireCoder 我真的建议您为这些问题再创建两个问题,因为这些都是有趣的话题,而且很难在评论中格式化答案。
    【解决方案2】:

    在生产环境中,我们不应该让 nodejs 应用面对原始流量。改用Nginx,Nginx可以处理https连接转发到sailjs http连接,额外处理限速,缓存...

    server {
        listen 443 ssl;
        server_name localhost;
    
        ssl on;
        ssl_certificate /etc/nginx/your_site/your_site-bundle.crt;
        ssl_certificate_key /etc/nginx/your_site/your_site.key;
    
        location /your_api {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://127.0.0.1:2000;
            proxy_redirect off;
        }
    }
    

    它还同时处理 http 和 https 连接。在下面的示例中,我只是将 http 连接转发到 https。如果你有别的目的,只要改变里面的逻辑。

    server {
        listen 80;
        server_name localhost;
        return 301 https://$host$request_uri;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-08
      • 2021-09-28
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      • 2014-04-23
      相关资源
      最近更新 更多