这是我的设置
IdentityServer 4作为无状态可靠的ASP.NET核心服务。 WebAPI作为可靠的ASP.NET核心服务。
将它们与JS客户端一起使用,现在正在使用HTTP。问题出在HTTPS上。 WebAPI需要通过htttps [is4URL] .well-known / openid-configuration请求openID配置。我收到此错误
System.InvalidOperationException:IDX10803:无法获取 配置来自: 'https://localhost:9999/.well-known/openid-configuration'。 ---> System.IO.IOException:IDX10804:无法从以下位置检索文档: 'https://localhost:9999/.well-known/openid-configuration'。 ---> System.Net.Http.HttpRequestException:发送时发生错误 请求。 ---> System.Net.WebException:底层连接 已关闭:无法建立SSL / TLS的信任关系 安全通道。 ---> System.Security.Authentication.AuthenticationException:远程 证书根据验证程序无效。
有人可以帮助我使用SF Local Cluster Manager在localhost中完成这项工作吗?
由于
答案 0 :(得分:2)
这是我的两分钱,但需要进行验证......
我假设您使用以下文章或类似文件创建了自签名证书,但证书具有相同的属性。
https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-configure-ssl-certificate
这意味着无法通过实际CA验证证书。当然,有了自签名证书,这是不可能的。
现在,当您将证书上载到Azure App Service时,它将安装在CurrentUser - MyStore中。使用自签名证书时,还需要将其安装在LocalMachine根存储中。
这就是机器的证书颁发机构可以验证证书是否有效。 (如果我错了,可能是安全专家可以纠正我,但这就是我的理论)。我在本地托管的Windows服务器上进行了相同的设置,其中自签名证书安装在根证书存储区以及个人存储区和应用程序中。这就是我相信这种情况的原因。
所以这部分需要验证。以下是介绍如何在Azure App服务中执行此操作的文章。
再说这只是一个需要验证的理论。 :)
编辑:
我刚刚对此进行了测试,情况确实如此。在云服务中,您可以执行上面第二个链接中所示的操作,并创建在适当的商店中安装证书的Web作业。
对于Azure App Service而言,您无法访问root商店。它必须安装在CurrentUser的个人商店中。这意味着自签名证书不起作用,您必须购买真实证书。 :(我认为这是微软的一个真正的拇指。为什么我需要为我的开发/测试环境支付真正的证书?(Rant Over)
对于Service Fabric,您需要了解如何在Root Store和个人存储中安装证书(如果可能的话)。这是可能有用的链接
http://ronaldwildenberg.com/running-an-azure-service-fabric-cluster-locally-on-ssl/
希望这会有所帮助。