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

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

我知道这个问题已经在很多论坛上被多次提出过,但是答案通常会相互冲突或者说绝对的(这是不可能的)。 对我来说这不是一个真正的select。 我在这里寻找的是一些select; 我打开非常规:)。

我已经看到一些build议性的回应,build议使用ISA服务器作为SSL代理。 有没有人知道更多关于这个? 或者有人configuration这个,并取得成功?

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

我想这样做,而不必提供单独的IP地址的客户端,希望在自己的网站上使用自定义域名和SSL。 这只是因为我的应用程序托pipe在亚马逊云上,他们并不热衷于给我一大块IP地址。

我的应用程序可以在IIS6或IIS7上宿主。

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

我很抱歉,你不喜欢“你不能这样做”的答案,但你不能做你想做的事情。 这项技术不能让你按照你想要的方式工作。

这是为什么。

HTTP协议允许多台服务器共享一个IP地址。 它通过HTTP / 1.1主机头进行:

Host: servername.example.com 

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

所以,尽可能努力尝试,但多个证书不能在一个IP地址上使用。 不pipe你怎么努力,也不是多less这不是你的select。

正如迈克尔所说,如果不可能的话,跺脚和p嘴不会改变事情。

从技术angular度讲,将单独的SSL证书放在不同的IP地址上不成问题。 这只是一个configuration问题(这是一个简单的编程问题),并且拥有一个了解大型公司需求的networking提供商,并且愿意为SSL域预先分配相当大小的地址块。

然而,还有另一种select,称为“ 服务器名称指示(Server Name Indication) ”,其中浏览器可以在SSL协商时告诉服务器什么虚拟主机,以便服务器可以呈现正确的证书。 不幸的是,对此的支持并不普遍; 根据上面的维基百科页面,IIS 6和7都不能在服务器端处理它,而且你需要运行Vista以在客户端使用IE(Firefox,Opera和Chrome都支持它一段时间)。

因此,如果您愿意切换到体面的Web服务器,并疏远您的用户群的任何部分仍旧使用旧的Microsoft操作系统上的过时的浏览器,那么您可以使用它。 没有人似乎想要惹阿姨Tillie在Windows 98上运行IE 5.5,虽然…

如果问题是关于提供安全会话(而不是关于拥有自己的证书的每个客户),为什么不使用通配符SSL证书来减轻图像的负担和复杂性呢?