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

问题描述 投票:27回答:6

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

ssl identityserver3
6个回答
60
投票

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

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

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

完成。请享用。


5
投票

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

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

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


2
投票

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


1
投票

根据作者提供的readme file in examples,将证书添加到Trusted People商店应该足够了。

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

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

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


1
投票

有时它虽然完成了上述设置并且您已将URL设为“https://localhost”,但仍然无效,而是将URL设为“https://MachineName”。即机器名称应与证书的“问题”值相匹配


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;"
© www.soinside.com 2019 - 2024. All rights reserved.