【问题标题】:Public domain to private intranet server, with https公共域到私有 Intranet 服务器,使用 https
【发布时间】:2018-05-02 20:45:57
【问题描述】:

我在一个巨大的本地 Intranet/网络上设置了服务器,它们在其中托管本地网站,但是我希望在从服务器托管的网站上使用 HTTPS。我需要 HTTPS,因为网站使用 HTML 5 并使用手机摄像头拍照等等。而且我不能自签名证书,因为我不希望用户看到错误并感到不安全。

但是服务器必须是私有的,在路由器防火墙内。我拥有一个公共领域,我们称之为 www.example.se。去 www.example.se 真的很好,它指向我的私有 IP,在浏览器中带有域名和 https。既然是公有领域,https应该很容易修复吧?

服务器有两个本地 dns ip 地址和一个本地 dns 名称,如果您不在同一个互联网中,它们都无法访问。机器的公共 ip 几乎所有端口都被外部阻止。进入网络的唯一方法是直接连接到它。

我很难弄清楚如何修复它,或者它是否可行。想要一些关于如何解决这个问题的提示,或者关于如何使它与其他解决方案一起工作的建议。我只需要 https 来访问用户媒体(navigator.mediaDevices.getUserMedia(constraints)),并且有 https 给用户一种安全感也很好。

EDIT 2017-11-20:添加更多信息。

我在 grepping DNS 服务器时从同一路由器和防火墙内的其中一台客户端计算机获取此信息。

  • IP4.ADDRESS[1]:XXX.XX.133.231/22
  • IP4.GATEWAY:XXX.XX.132.1
  • IP4.DNS[1]:XXX.XX.132.3
  • IP4.DNS[2]:XXX.XX.172.2
  • IP4.DOMAIN[1]: 'EXAMPLE'.local
  • IP6.ADDRESS[1]: fe80::xxx:xxx:xxx:xxxx/64
  • IP6.GATEWAY:--

【问题讨论】:

  • 你有控制本地网络的 dns 吗?
  • 这是一个巨大的内网,所以我将无法在 dns 中推送任何大的更改。但是,如果它不损害 Intranet 的其余部分,我也许可以添加一些设置。
  • 您的网络是否完全与互联网隔离,或者服务器仍然可以访问外部世界?
  • 服务器可以与外界通信,但反过来却不行。而且我无法打开端口,因为某些 Intranet 包含脆弱的信息。

标签: javascript html dns domain-name


【解决方案1】:

如果您可以控制 Intranet 中的 DHCP 服务器,则可以指定每个人都必须使用的 DNS 服务器。该 DNS 服务器可以指向本地 IP 地址。然后,对于您网络中的访问者来说,它看起来就像一个普通的网站。

如果您想通过 HTTPS 进行连接,则必须使用 Let's Encrypt 之类的东西来获取证书,或者您可以自签名证书,但如果您自签名,现代浏览器会抛出错误。

编辑:

对于 https,让 CA 为您签署证书应该没什么大不了的。如果您不想与外部世界建立任何连接(气隙或其他),那么您需要找到一个 CA 为您签署证书(费用为 $$$)。 Https 对你来说应该不是太大的需求,因为只有你网络中的人才能进行攻击,而且看起来你已经很好地锁定了它。 您最好的选择是自签名并让网络中的所有浏览器都信任您的证书。这将是免费且简单的,无需连接到外部世界。

对于 DNS,添加一个指向您的内部服务器的 DNS 条目不会影响其他机器。它所要做的就是告诉网络上的其他计算机“www.example.se”存在于 192.168.1.1(或任何服务器的内部 ip)。

您的网络上有 DNS 服务器还是使用 IP 地址进行通信?

【讨论】:

  • 如果服务器不可公开访问,LE 将无法工作。
  • LE 需要一个公共域才能使其工作,这就是为什么我认为它可以将公共域指向我本地机器的本地 IP 地址,从而获得一个有效的证书。
  • 我会检查是否获得签名证书,为此支付一些钱不会有问题。他们有一个本地 DNS 服务器,将 Intranet 划分为不同的“区域”。将在原帖中添加一些额外信息
猜你喜欢
  • 1970-01-01
  • 2014-07-22
  • 2020-02-04
  • 2017-05-21
  • 2019-12-18
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多