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

ffscu2ro  于 2023-11-18  发布在  其他
关注(0)|答案(7)|浏览(146)

我试图使用OWin和Thinktecture Identity Server设置SSO,但我没有任何运气让SSL证书工作。至少我认为这是问题所在。当我在Visual Studio中时,一切正常,但如果我尝试在我的机器上使用IIS,它会给我错误“根据验证过程,远程证书无效”.我也试过使用IIS作为客户端,将运行在Visual Studio中的示例视为令牌授权,但我仍然得到同样的错误。有人知道我做错了什么吗?

9lowa7mx

9lowa7mx1#

在我的情况下,我只是试图通过样本工作(ID3v2),并获得证书的错误在本地运行。由于一些样本甚至通过owin做自我托管,我甚至不知道它是从哪里得到的主机端证书??
无论如何,我的解决方法是将证书复制到可信根:

  1. Windows =>开始=>运行MMC.EXE
    1.文件=>"添加/删除管理单元..."=>证书
    1.添加>
    1.使用计算机帐户=>本地计算机=>完成
    1.好
    1.转到个人/证书
    1.右键单击"localhost",选择复制
    1.粘贴到"受信任的根证书颁发机构"
    1.重新启动才能生效
    好的。好好享受。
bgtovc5b

bgtovc5b2#

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

我刚打开Certmgr。->从受信任根证书颁发机构删除了本地主机证书。

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

vs91vp4v

vs91vp4v3#

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

dy2hfwbg

dy2hfwbg4#

这可能是由于以前的认证配置不正确造成的(有时可能发生在您不同意安装认证时):

  1. Windows启动并打开Certmgr. exe
    1.在Personnel/Certificats下,找到所有localhost证书并将其删除
    1.在受信任的根证书下执行相同的操作,然后关闭。
    1.启动你的应用程序,你会得到一个异常。
    1.打开包管理器控制台并执行:dotnet dev-certs https --trust
    1.重新启动您的应用程序,通常您现在有一个有效的证书。
kzmpq1sx

kzmpq1sx5#

根据作者提供的readme file in examples,将证书添加到受信任的人存储应该足够了。
在生产场景中,它应该更好,因为根存储是用于CA的,当您在那里添加一些东西时,该授权不仅是可信的,而且它签署的任何证书都是自动可信的。
你可以检查这一点从microsoft reference的进一步细节.摘录2存储简短描述:
根:受信任的根证书颁发机构(CA)的证书存储区。
TrustedPeople:用于直接信任的人员和资源的证书存储。
附注:在我的场景中,我在机器A上有IS,在机器A和B上有一组使用IS的Web应用程序。机器B上的IIS证书与A和IS使用的证书不同,但我只是将其添加到机器B的Trusted People存储中,“证书错误”消失了。

xtfmy6hx

xtfmy6hx6#

有时它不工作,虽然上述设置已经完成,你已经给了网址为“https://localhost“,而不是给网址为“https://MachineName“。即机器名称应该匹配证书的“问题”值

g0czyy6m

g0czyy6m7#

对于.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;"

字符串

相关问题