启用S​​SL时禁用HTTP

时间:2017-04-24 06:40:08

标签: node.js ssl meteor https

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

如何通过3000禁用对应用程序的直接访问?

我已尝试使用force-ssl包,但它没有强迫用户使用https。

这是我的taranag-ssl的主要内容:

~/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);

1 个答案:

答案 0 :(得分:0)

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

检查实际规则

iptables -nvL --line-numbers

添加新规则

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

我希望它有所帮助。