【问题标题】:Disable HTTP when SSL is enabled启用 SSL 时禁用 HTTP
【发布时间】:2017-04-24 06:40:07
【问题描述】:

我目前已将tarang:Meteor-ssl-proxy 安装为单独的节点应用程序。它使我能够通过https:// 访问我的流星应用程序但是,我仍然可以通过默认的localhost:3000 访问流星应用程序(或者它的主机IP:3000 例如:1.2.3.4:3000)

究竟如何禁用通过3000 直接访问应用程序?

我已经尝试使用 force-ssl 包进行此操作,但它并没有强制用户使用 https。

这是我的 taranag-ssl 的 main.js:

~/experimental/Meteor-SSL-proxy$ cat main.js 

var PATH_TO_KEY = "/etc/ssl/server.key",
    PATH_TO_CERT = "/etc/ssl/server.crt";
    PATH_TO_CHAIN = "";

var fs = require('fs'),
    httpProxy = require('http-proxy');

var options = {
  ssl: {
    key: fs.readFileSync(PATH_TO_KEY, 'utf8'),
    cert: fs.readFileSync(PATH_TO_CERT, 'utf8'),
    //ca : fs.readFileSync(PATH_TO_CHAIN, 'utf8')
  },
  target : "http://localhost:3000",
  ws: true,
  xfwd: true
};

var server = httpProxy.createProxyServer(options).listen(443);

【问题讨论】:

    标签: node.js ssl meteor https


    【解决方案1】:

    您可以使用 iptables 拒绝所有对端口 3000 的外部访问,添加类似使用 shell 的规则。

    检查实际规则

    iptables -nvL --line-numbers
    

    添加新规则

    iptables -A INPUT -p tcp --dport 3000 -j DROP
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 2015-11-15
      • 2020-12-30
      • 2019-02-22
      相关资源
      最近更新 更多