多个网站使用 SSL 一个应用程序

Jer*_*amp 3 security iis asp.net-mvc ssl-certificate

我编写了一个 ASP.NET MVC 应用程序,允许用户指定他们自己的自定义域。我将 IIS 配置为将所有请求发送到默认网站,因此我不需要使用主机标头。一切正常。唯一的问题是 SSL。

我知道这个问题已在许多论坛中多次被问到,但答案通常是相互冲突的,或者说是绝对的(这是不可能的)。这对我来说不是一个真正的选择。我在这里寻找的是一些选择;我对非常规持开放态度:)。

我看到一些建设性的回应建议使用 ISA 服务器作为 SSL 代理。有没有人了解更多?或者有人配置了这个并成功了吗?

基本上我想为我的用户提供一种从应用程序请求 CSR 的方法,去购买和下载 SSL 证书,回到我的应用程序并上传由授权认证公司颁发的证书。

我想这样做而不必为想要在其站点上使用自定义域和 ssl 的客户提供单独的 IP 地址。这仅仅是因为我的应用程序托管在 Amazon 云上,他们并不热衷于给我一大块 IP 地址。

我的应用程序可以托管在 IIS6 或 IIS7 上。

解决方案:感谢您对这些家伙的所有帮助。我当然没有像现在这样理解这个问题。我认为我现在的解决方案是生成通配符证书并强制我的客户使用 clientname.someshareddomain.com 如果他们想要安全连接。对于根本不同意的客户,我可能会通过 api 调用提供另一个弹性 IP 地址到亚马逊 Web 服务,在 IIS 中创建一个新网站并将其指向我的应用程序的根文件夹,然后以编程方式从中生成一个 CSR新网站。我只需要与亚马逊达成某种协议,才能给我一个不错的 IP 地址块。

Mic*_*aff 10

我很抱歉您不喜欢“您不能这样做”的答案,但您不能做您想做的事。该技术不允许它以您想要的方式工作。

这是为什么。

HTTP 协议允许多个服务器共享一个 IP 地址。它通过 HTTP/1.1 Host 标头执行此操作:

Host: servername.example.com
Run Code Online (Sandbox Code Playgroud)

SSL 握手发生HTTP 握手发生之前。这意味着服务器不知道根据客户端想要的服务器向客户端提供什么证书。

所以,尽你所能,但不能在一个 IP 地址上使用多个证书。无论您多么努力,也无论多么努力,这都不是您的选择。