我在路由器后面有两台服务器和一个带有通配符证书的域名。(*.example.com) 证书来自 Let's Encrypt,由服务器 A 管理。(在 Windows 10 上使用 IIS。)
另一台服务器 B 使用 Ubuntu 20 和 Apache2。
服务器 A 查看端口 80 和 443。服务器 B 查看端口 8080 和 8443,仅用于测试目的。我的路由器上的端口转发会将传入请求发送到正确的服务器。
但是由于这种设置,我无法向服务器 B 请求 Let's Encrypt 证书。为什么我会,因为服务器 A 已经拥有我可以使用的通配符证书。所以我所需要的只是一些简单的自动化过程,可以将证书从 A 复制到 B,以便两台服务器共享相同的证书。说得通?
我不是在寻找端口转发,因为两台服务器都使用相同的域名(和类似的子域),所以没有用。我也不是在寻找手动解决方案,因为这需要以简单的方式自动化。这些系统用作我开发的应用程序和站点的开发环境,共享证书的原因只是为了让外部测试人员对我所做的进行完整测试,无论它是在 IIS/Windows 还是 Apache2/Linux 上运行.
Wim ten Brink's questions
剪掉绒毛:通配符主机标头支持,在 IIS 8 中以某种方式为子域提供支持吗?
我知道,这是一个糟糕的设计,这就是为什么我保留下面的原始问题来解释原因......
我有两个域,example1.com 和 example2.com,我希望它们都托管在运行 Windows 2012 和 IIS 8 的简单服务器上。我也只有一个 IP 地址,事情有点挑战性。但是,这不是一个生产环境,而是一个测试环境,供我在将完整的网站项目交付到生产环境之前对其进行测试。然后它就完成了,我开始一个新的项目,一个新的域。
因此,我在 IIS 中设置了一个站点,任何传入流量都进入该站点。我为第二个域设置了第二个站点,并且在处理许多不同的域时通常可以正常工作。但现在我有一个挑战。
我现在正在从事两个项目,这两个项目都严重依赖于用户对子域的使用。因此,对于网站上的每个用户,都必须有一个特定的子域。客户想要这个,所以不要告诉我这是一个坏主意。客户要求很高。(可怕的是,我现在在两个需要这个的站点上工作。一个很容易。)所以两个站点现在都需要接受特定域名的所有子域。因此,虽然大多数人会去 example1.com,但 url wim.example2.com 应该去第二个网站。虽然使用第二个 IP 地址会很容易,但我只有一个。
那么如何让所有子域都转到 IIS 8 中的正确站点?
作为一名软件开发人员,我有一个简单的 Web 服务器 (Windows 2012/IIS),用于两个不同的域。一般来说,我有一个基本的“默认”站点作为包罗万象的站点,以及用于特定域或子域的各种其他站点。这些特定站点是我正在处理的项目,而默认站点只是一个通用工具箱。我的问题是关于在这个默认站点上仅将一些域重定向到 HTTPS!
因此,我为此默认站点使用 Let's Encrypt SSL 证书并使用“Certify the Web”来保持证书是最新的。只要我将特定域名绑定到该站点,就可以正常工作。但正如我所说,它是一个包罗万象的网站,所以我可能绑定了 example.com,但 www.example.com 或 my.example.com 未绑定。由于可能存在许多其他子域,因此我倾向于拥有比使用 SSL 的页面更多的页面。这很好!没问题。
但是,当有人访问绑定域的站点时,我希望他们被重定向到安全站点。因此,如果他们访问http://example.com,他们最终会访问https://example.com。虽然我可以强制 IIS 将所有请求重定向到安全版本,但这样做会导致在我的服务器上找不到大多数域,因为它们未绑定。所以我只想要绑定到这个默认站点的站点的重定向。
还有另一种解决方案,即创建第二个默认站点。这将强制实施 SSL,以便绑定站点是安全的。但这是用于各种项目的小型服务器,我不希望在我已经拥有的 40 个站点列表中再有一个站点。(而且这个列表往往会增长得更多。)所以我想知道是否可以只为绑定的站点强制 SSL,而未绑定的站点不会被重定向。
(如果您想知道,默认站点后面会有一些特殊的逻辑,并且安全域将具有登录功能,让我处理一些额外的管理任务,例如检查日志和服务器健康状况。这不是一个简单的默认站点! )
我已经设置了一个简单的 Windows 2012 网络服务器并开发了一个 ASP.NET/MVC 网站,该网站基本上处理对默认网站的任何请求,如果我的服务器不知道该域,则将一条消息写入日志数据库。(已知域由该服务器上的不同站点处理。)当我注册一个新网站时,这对我很有用,因为它会在 DNS 数据设置并激活后生成一个默认登录页面。它还有助于查看人们是否拼错了我网站之一的子域。我希望我只会看到我自己注册的域。
这已经运行了几天了...
但是,此时似乎有两个域已连接到我不拥有的服务器。或者甚至知道。(kkqxjc.loan 和 quwan18.com) 而且我怀疑更多未知域似乎会以某种原因连接到我的网站。问题是:为什么我让这些未知站点连接到我的服务器?
会不会是 DNS 系统的缺陷?还是有人通过以某种方式欺骗 Web 服务器软件来积极尝试破解我的服务器?有没有其他人有类似的情况?他们只是为了访问服务器上的默认站点而进行网络钓鱼吗?
注意:虽然站点是新站点,但我已经使用服务器和 IP 地址超过 8 年了。就在最近,我决定建立一个特定的站点,作为所有传入互联网流量的包罗万象的站点。
自从发布这个问题以来,我注意到另外两个域似乎进入了我的服务器。(gencybercamps.org 和 360xdw.net)每个域只查询一次,似乎不再访问我的服务器。每个未知域只访问一次,但相同的访问者一直在访问我从该服务器操作的其他几个域。这似乎暗示我这是一次黑客尝试,他们试图访问各种系统上的默认虚拟服务器。
我有一个只支持公司内部网的网络服务器,不支持外部互联网。大约有 100 个不同的用户将连接到此服务器上的 Web 应用程序,并且他们都有自己的登录帐户。目前,由于一些设计缺陷,Web 应用程序不支持 HTTPS,这需要时间来修复。所以我有两个选择:1)延迟安装应用程序,直到它支持 HTTPS。2)只需安装这个东西,因为它只在内部网络上运行,没有很大的风险。及时,它可以被修补并移动到安全的服务器上。
Web 应用程序管理的数据具有隐私元素,因为它主要是客户信息。(但没有信用卡或银行账户数据。)不过,它仍然被视为敏感信息。但不够敏感,无法不惜一切代价进行防御。虽然会有一两个用户对计算机黑客有一定的技术知识,但大多数用户不是 IS 专家,而只是普通用户。(所有用户都使用普通用户帐户,而不是管理员帐户。用户安装其他软件几乎是不可能的。)
那么,当我在安全性较低的连接上内部安装此应用程序时,是否存在很大风险?
添加在: 我们不支持 WLAN。访问者可以插入网络,但仍无法访问 Intranet 环境。我不是这个主题的专家,但据我了解,机器需要成为我们域的一部分才能访问 Intranet 环境。(这个已经测试过了!)由于用户不能安装额外的软件,他们很难安装额外的黑客工具。每个系统也有一个很好的病毒扫描程序,它会保持最新状态。此外,所有传出 Internet 连接都必须通过一个额外的代理服务器,该服务器会进行一些额外的检查。用户知道他们对外部站点的 Internet 行为受到监控。尽管任何计算机都可能被黑客入侵,但系统不够灵敏,无法进入恐慌模式并确保一切安全。最坏的情况是黑客删除了所有数据,这意味着我们必须恢复备份。或者,他会得到一份客户名单、他们的工作和一些财务信息,但没有提及银行账户或其他账户信息。
附加组件2:我问这个只是因为常规管理员此时不可用。(由于荷兰恶劣的天气条件,他发生了事故。这并不严重,但他需要一段时间才能恢复。)该应用程序是新的,安装后将没有数据。有人告诉我,他可能需要长达 2 个月的时间才能恢复到足以继续他的工作,所以决定主要是在没有他的支持的情况下安装它,这样它就可以已经使用或等到他回来,这可能会耽误事情只要他不在,或者直到我们找到并培训了合格的替代者。
这是一个刚刚出现在我脑海中的问题,我不禁想知道为什么在 C: 上安装 Windows 安装仍然很常见,而所有其他驱动器号从 D: 上升到 Z:。在早期的 MS-DOS 时代,我们只有软盘,它们位于 A:。当 3.5 寸软盘开始取代 5.25 软盘时,很多人都有 A: 和 B: 驱动器。然后硬盘开始流行,硬盘在C:因为A:和B:被占用了。然后 5.25 软盘消失了,大多数电脑在 A: 和 C: 之间有一个差距。如今,3.5 软盘实在是太落伍了,所以 A: 也消失了。现在所有磁盘都从 C: 开始。
是的,我知道我可以分配我自己的驱动器号,而且我已经用我的数据磁盘这样做了。我的安装盘将继续卡在 C: 上,我并不介意。我对驱动器号没有任何问题。
但是为什么新的 Windows 版本只是继续默认安装在 C: 上而不是分配字母 A: 到引导硬盘呢?