使用代码动态加载SSL

时间:2012-12-26 22:01:48

标签: asp.net security ssl

我的问题到目前为止,纯粹是理论问题。 我想制作一个支持多个网站的CMS。

到目前为止我无法弄清楚的问题是: 如何从代码隐藏中附加https协议的ssl证书,而不是通过托管接口或iis本身附加它(主要问题是我想为每个站点添加不同的ssl证书,而是将它们分组到一个证书,最多允许5个域,并且仍然会说它们是同一个实体)

2 个答案:

答案 0 :(得分:2)

这在ASP.NET级别上是无法解决的。

原因是,在HTTPS请求之前,在客户端发送HTTP请求之前执行SSL握手(呈现证书),您可以从中学习域。

唯一的例外是TLS中的server-name-indication扩展,它允许客户端在SSL请求中指定所需的域。但是许多客户端不支持此扩展,并且在仍使用的SSL3协议版本中不存在此扩展。即使有了这个扩展,它也是SSL服务器决定提供哪个证书。

答案 1 :(得分:1)

如Eugene所述,管理SSL证书超出了ASP.Net的水平;但是,您可以创建某种形式的管理例程来执行IIS7(及以上)AppCmd.exe的命令行工具来管理证书:

ie(shell命令 - 安全权限很重要): appcmd.exe set config -section:system.applicationHost / sites / +“[name ='Default Web Site']。bindings。[protocol ='https',bindingInformation ='*:443:']”/ commit:apphost < / p>

System.Security.Cryptography.X509Certificates.X509Certificate名称空间也可能派上用场。