IdentityServer:根据验证过程,远程证书无效

时间:2015-01-19 19:34:18

标签: ssl identityserver3

我正在尝试使用OWin和Thinktecture Identity Server设置SSO,但我没有运气获得SSL证书。至少我认为这是问题所在。当我在视觉工作室时,一切正常,但如果我尝试在我的机器上使用IIS,它会给我错误“远程证书根据验证程序无效”。我也尝试使用IIS作为客户端将在visual studio中运行的实例视为令牌权限但我仍然得到相同的错误。任何人对我做错了什么有任何想法?

7 个答案:

答案 0 :(得分:60)

就我而言,我只是试图处理样本(对于ID3v2)并在本地运行证书错误。由于一些样本甚至通过owin进行自我托管,我甚至不确定它在哪里获得主机端的证书?

无论如何,我的修复方法是将证书复制到受信任的根目录:

  1. Windows“开始”按钮,运行MMC.EXE
  2. 文件,添加管理单元:证书
  3. 使用计算机帐户,本地计算机,确定
  4. 转到个人/证书下
  5. 右键单击“localhost”并拖放Trusted Root ....
  6. 选择“复制”
  7. 完成。享受。

答案 1 :(得分:5)

花了很多时间给我后,解决方案非常简单

我刚刚打开了Certmgr.msc --->从受信任的根证书颁发机构中删除了localhost证书。

然后打开我的解决方案(在我运行身份服务器之后) 点击运行视觉工作室向我询问是否要为iis express(ssl)生成新证书, 我点击了是,然后它开始正常工作:)

答案 2 :(得分:2)

您需要将IIS正在使用的任何证书添加到本地计算机上的“受信任的根证书颁发机构”存储区。

答案 3 :(得分:1)

根据作者提供的readme file in examples,将证书添加到“受信任的人”商店应该足够了。

在生产场景中,它应该更好,因为Root存储是针对CA的,当您添加某些内容时,该权限不仅受信任,而且由其签名的任何证书都会自动受信任。

您可以从microsoft reference查看更多详细信息。 2商店摘要简述:
Root:受信任的根证书颁发机构(CA)的证书存储 TrustedPeople:直接信任的人和资源的证书存储。

P.S:我测试过它有效。在我的场景中,我在机器A上有IS,在机器A和机器上使用IS有一组Web应用程序。机器B上的IIS证书与A和IS中使用的证书不同,但我刚将它添加到机器B上受信任的人员存储和“证书错误”消失。

答案 4 :(得分:1)

有时,虽然上述设置已完成并且您已将网址指定为“https://localhost”,但它不起作用,而是将网址设为“https://MachineName”。 即机器名称应与证书的“问题”值相匹配

答案 5 :(得分:1)

这可能是由于先前认证的配置错误(有时可能会在您不同意安装认证时发生):

  1. Windows启动并打开Certmgr.msc
  2. 在人员/证书下,找到所有本地主机证书并将其删除
  3. 在“受信任的根证书”下执行相同的操作,然后关闭。
  4. 启动您的应用程序,您将获得一个例外。
  5. 打开Package Manager控制台并执行:dotnet dev-certs https --trust
  6. 重新启动您的应用程序,通常现在您具有有效的证书。

答案 6 :(得分:0)

对于.Net Core,将TrustServerCertificate = False更改为TrustServerCertificate = True,这将解决您的问题,如下所述。

"DataConnect": "Server=tcp:127.0.0.1,1433;Initial Catalog=dbName;Persist Security Info=False;User ID=username;Password=password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;"