2016-10-16 57 views
0

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

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

X509Certificate2 LoadCertificate() 
{ 
    return new X509Certificate2([email protected]"{AppDomain.CurrentDomain.BaseDirectory}\Certificates\idsrv3test.pfx", "idsrv3test"); 
} 

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

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

我有很多问题,但在证书安全性方面,我是一个总的noob。如果有人可以请在这个问题上给点光明,我很欣赏它。

问候, 安德烈

回答

0

确定。弄清楚了。问题不在于idsrv3test证书。事实上,没有证书证明响应来自服务器。当我使用chrome更仔细地查看错误时,解释很明显 - 服务器无法证明它是xxx。我不得不做很少的事情才能实现它。 1.使用服务器地址的颁发者创建一个证书。如果我在azure上托管,那将是myvmname.cloudapp.azure.com。我为此使用了make cert实用程序。 2.绑定的证书在IIS 3.网站的安全的HTTPS端口证书添加到受信任的根通过机器上的MMC访问服务器

提示别人像我想出来的: 如果您想知道自签名证书(您可以使用make证书制作的证书)和您需要付费的商业证书之间的区别是什么,它是商业版本的可靠浏览器

相关问题