使用 Nginx 和 SSL 注册到完全合格域名的不合格 DNS

使用 Nginx 和 SSL 注册到完全合格域名的不合格 DNS

我有两台服务器;一台是“官方”example.com服务器,用于托管我的公共网站和邮件服务器 (bluehost.com)。第二台是我的私人 LAN 服务器,用于托管我的销售点应用程序和通用“管理器”应用程序。

服务器example.com已购买并应用了通配符 SSL。我希望将此证书用于托管在私有 LAN 服务器上的所有应用程序,因为它是受信任的证书,并且其中提到的所有应用程序都属于同一家公司的管辖范围。我了解到,这只需将私钥和公钥/证书文件复制到我的服务器上并配置 nginx 以使用它们即可。我已经这样做了,但问题是我当前的 URL 方案(http://位置/http://经理/) 最终不会与通配符证书的域匹配。

立即的解决方案是强制所有 nginx LAN 服务器使用较长的 URL(例如http://pos.example.com),但我想避免这样做。 有没有一个优雅的解决方案来解决这个问题? 在移动设备上输入实际注册的域名需要很长时间,这只会让我使用 pos/manager 应用程序的员工感到困惑。

更改我的 LAN 的连接特定后缀example.com是否有帮助?

答案1

不幸的是,如果您这样做,您的员工将需要输入完全合格的域名,正如您所见。

可以自动重定向http://位置https://pos.example.com但不是来自https://位置因为证书协商发生在重定向之前。替代方法是添加书签等。

无法设置任何系统来自动将域名附加到浏览器请求(尽管可以将较短的名称解析为全名,但仍会留下证书问题)。

您可以改用内部自签名证书,根据我的经验,大多数公司都是这样做的。由于您创建证书是免费的,您可以添加短域名以及完全合格的域名。但是,这意味着您必须将证书颁发者添加到所有内部浏览器,这可能并不简单,具体取决于您的设置。尤其是当涉及移动设备时。最终,让人们习惯完全合格的域名可能会更容易。

我也同意最佳做法是不要在内部使用外部可见的域。这可能会导致问题。

答案2

这只是可能的解决方案之一。配置一些东西,以便内部设备通过公共 IP(不是 192.168.xx)和公共名称(https://pos.example.com)。当然,要确保公共 IP 只能从您的网站访问,而不能从互联网访问。

在你的内部 nginx 上也添加永久重定向(HTTP 301)http://位置(内部 IP)至https://pos.example.com(公共 IP)。

这种解决方案的缺点是流量比绝对需要的多跳一跳,并且您需要注意公共 IP 安全。

优点是您不需要在用户设备上进行任何更改(无需手动证书信任)。

相关内容