在天蓝色虚拟机

时间:2016-10-16 18:48:40

标签: security ssl iis

我正在为使用身份服务器3进行身份验证的应用程序设置测试vm。它已经在我的开发机器上设置和工作,但我们正在将它移动到云中以便于测试,并且我遇到了证书问题。基本上我的设置如下: 我正在使用随样本提供的idsrv3test证书。身份服务器启动正在加载它们:

var options = new IdentityServerOptions
{
   Factory = idServerServiceFactory,
   SiteName = "Strata Practice Management",
   SigningCertificate = LoadCertificate()
}

X509Certificate2 LoadCertificate()
{
    return new X509Certificate2($@"{AppDomain.CurrentDomain.BaseDirectory}\Certificates\idsrv3test.pfx", "idsrv3test");
}

这基本上是示例中提供的示例代码。 现在,在同一台服务器上,有一个连接到身份服务器的MVC应用程序。两者都托管在iis上。当我在我的开发盒上运行它们时一切正常。我使用默认网站/ IdentityServer路径将我的身份服务器项目发布到azure vm。相同的测试证书已上载到服务器。然后,当我尝试转到https://localhost/IdentityServer/identity(来自同一个虚拟机管理程序)时,我收到以下错误:本网站提供的安全证书是针对不同网站的地址发出的。 IE没有提供太多细节,但我怀疑问题是idsrv3test的主题与正确的机器网址不对应。当我查看证书的主题时,只需说idsrv3test。

所以问题是:   - 当我在本地开发计算机上加载服务器时,为什么证书可以与iis express一起使用?   - 我该怎么做才能让它在虚拟机上运行?我假设我需要创建一个具有正确主题的新证书,该证书将对应于服务器地址并加载而不是idsrv3test。我该怎么办?我认为,因为这是一个测试盒,我不需要购买商业证书,而且可以自己制作,对吗?新证书的主题应该是什么?它应该只是https://localhost吗?还是只是localhost?或者我的虚拟机的完整域名?

我有很多问题,但在证书安全方面我是一个完全的菜鸟。如果有人可以请就这件事给予一些启发,我非常感激。

此致 安德烈

1 个答案:

答案 0 :(得分:0)

确定。弄清楚了。问题不是idsrv3test证书。事实上,没有证明证明响应来自服务器的事实。当我使用chrome更仔细地查看错误时,解释非常清楚 - 服务器无法证明它是xxx。我必须做一些事情才能让它发挥作用。 1.使用服务器地址的颁发者创建证书。如果我在azure上托管,那将是myvmname.cloudapp.azure.com。我使用了make cert实用程序。 2.将证书绑定到iis中网站的安全HTTPS端口 3.通过访问服务器的计算机上的mmc将证书添加到受信任的根目录

提示其他像我一样搞清楚: 如果您想知道自签名证书(您可以使用make证书制作的证书)与您必须支付的商业证书之间的区别,那就是浏览器信任商业证书