向本地主机颁发多个证书

向本地主机颁发多个证书

我的本地构建环境有一个颁发给本地主机的证书。我还有另一个颁发给本地主机的证书,用于在浏览器 (IIS express) 中运行 MVC。

这些证书互相干扰,所以我的同事删除了 IIS express 证书。现在我的本地构建环境可以工作了,但我无法从 Visual Studio 启动我的 ASP.NET 网站(说存在 IIS 问题)。

我不确定为什么不能为同一个实体分配多个证书或者如何解决这个问题。

有小费吗?

答案1

传统上,每个 IP 只能使用 1 个证书。原因是 HostHeaders 已加密,因此可以在解密之前在服务器上进行基于名称的路由。但是,如果不知道 HostHeaders,应该使用哪个证书/密钥呢?

目前有三种解决方法:

a) 使用多域 (或 UCC) 证书。这是附有多个名称的单个证书。服务器只需管理 1 个证书,但该证书对任何名称都有效。它们的价格非常昂贵,但您可以制作自签名的 UCC。

b) 如果您运行的是足够新的软件,则可以使用 SNI,它是对 TLS 协议的更新,允许在描述之前辨别 HostHeaders(或有效地辨别),以便将请求路由到正确的证书/密钥。只有 IIS express 才支持最新版本,但它可能对您有价值:http://www.iis.net/learn/extensions/introduction-to-iis-express/iis-80-express-readme

c) 对其他证书使用另一个 IP。为您的机器提供另一个 IP,并在新 IP 上运行该开发服务器。这实际上可能是最简单的,但我最后才想到它,所以是 C。

相关内容