在一台计算机上,我有2个项目 - 一个客户端应用程序,另一个包含身份服务器和身份管理器。当我在这台计算机上运行客户端站点时,一切正常。我可以登录,注册等。该项目已经设置并正常运行。
我制作了一份项目副本并将它们放在另一台计算机上。我已在IIS中设置了站点并创建了自签名证书。
当我运行客户端站点并尝试登录时,我得到黄色的asp.net错误页面,其中包含消息“远程证书根据验证程序无效”。使用调试器时,我也看到:“底层连接已关闭:无法为ssl / tls安全通道建立信任关系”
我认为错误与证书有关,因此在MMC中我确保证书安装在受信任的root certification authorties文件夹中。
我做的另一件事是检查项目中的web.config文件。 在客户端站点我有类似的东西:
<oidcClient clientId="codeclienthere"
clientSecret="secrethere"
signingCertificate="keythatmatches_certificate_hash_here"
issuerName="https://identityurlhere/issuer"
...
然后在身份服务器和身份管理器web.config文件中,我有类似的东西:
<appSettings>
<add key="owin:AppStartup" value="startup" />
<add key="Issuer" value="identity_url_here/issuer" />
<add key="Thumbprint" value="keythatmatches_certificate_hash" />
<add key="WebClientId" value="codeclienthere"/>
<add key="WebClientSecret" value="secrethere"/>
...
我更改了签名证书和指纹值以匹配证书哈希值。对于属性“issuerName”和密钥“Issuer”,我尝试将其保留为相同,将其设置为证书的名称,并在证书名称前加上“CN =”。我不确定这里应该有什么价值。我也不确定我应该检查的其他事情。
答案 0 :(得分:0)
这里的问题是指纹上有隐藏的字符,我没注意到。我已经在文本编辑器中粘贴了比较或者其他东西而且它们被删除了所以当我将它们粘贴回配置文件时它们根据需要不匹配。