我的服务器上有 50 多个网站,它们都需要通过 SSL 进行访问。我负担不起为每个网站购买一个唯一的 IP。
有没有办法可以设置如下域名: https://secure.mydomain.com/
并为每个站点提供:例如 domainA.com 例如 domainB.com
类似这样的 URL: https://secure.mydomain.com/domainA/ https://secure.mydomain.com/domainB/
我知道有少数网站托管商可以这样做。
我怎样才能做到这一点?
我是否需要摆弄应用程序的起点?
谢谢。
我的目标:
- 购买 1-3 个 IP 地址
- 1 个 SSL 证书。
- 为每个站点提供一个 SSL URL(每个站点已经有一个普通域名)
答案1
可以按照您建议的方式操作。只需使用 1 个证书,因此可以使用单个 IP。有几件事需要考虑。
- 除非您期望它们在这些文件夹中包含基本内容,否则它们不应使用共享应用程序池。共享应用程序池存在安全问题(对于批量解决方案,或者如果它是受信任的解决方案,则可能不是您的问题),但这也意味着它们都被迫使用相同的.net框架版本。
- 一个选项是将其子文件夹标记为应用程序,并将 secure.yourdomain.com/DomainA 文件夹放入与 DomainA 网站相同的应用程序池中。这需要更多的前期工作,但它将使https://secure.yourdomain.com/DomainA可互换http://www.domaina.com,包括其所有代码。只需确保项目为 secure.yourdomain.com 的根文件夹,这样它就没有任何 web.config 设置。这样它就不会与任何子文件夹发生冲突。
以下是我制作的两个有关 SSL 标头的约 10 分钟的视频,您在规划此项目时可能会发现它们很有用:SSL 绑定问题和IIS 中的 SSL 站点
答案2
如果您拥有全部 50 个站点,则可以为所有 50 个站点获取 SSL 证书...它称为 UCC 或 SAN 证书,如果包含这么多证书,则可能会很昂贵。
如果您按照所提议的方式进行操作,任何人进入https://domainB.com
其浏览器最多都会收到一条错误消息。
答案3
是的,这是有可能的。
在 Apache 中,我将 DomainA 的文档根目录(例如,/var/web/DomainA)别名为 Secure.mydomain.com,并使用别名:
Alias /DomainA /var/web/DomainA
如果您需要处理使用绝对 URL 引用的网站,您可能还需要查看 mod_rewrite。
在 IIS 中,您可以对虚拟目录执行相同的操作。
我能预见的唯一问题是应用程序池本身,它可能必须在“安全”的 Web 服务器下重新配置才能识别新的 URL 路径。
编辑:正如其他答案所述,https://www.domainA.com仍然无法工作。客户端必须集成https://secure.mydomain.com/DomainAURL 放入他们的代码中。