ServiceFabric本地群集中的HTTPS通信

时间:2017-05-17 07:58:08

标签: asp.net-core azure-service-fabric identityserver4

这是我的设置

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中完成这项工作吗?

由于

1 个答案:

答案 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服务中执行此操作的文章。

https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-configure-ssl-certificate-portal

再说这只是一个需要验证的理论。 :)

编辑:

我刚刚对此进行了测试,情况确实如此。在云服务中,您可以执行上面第二个链接中所示的操作,并创建在适当的商店中安装证书的Web作业。

对于Azure App Service而言,您无法访问root商店。它必须安装在CurrentUser的个人商店中。这意味着自签名证书不起作用,您必须购买真实证书。 :(我认为这是微软的一个真正的拇指。为什么我需要为我的开发/测试环境支付真正的证书?(Rant Over)

对于Service Fabric,您需要了解如何在Root Store和个人存储中安装证书(如果可能的话)。这是可能有用的链接

http://ronaldwildenberg.com/running-an-azure-service-fabric-cluster-locally-on-ssl/

https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-security-update-certs-azure

希望这会有所帮助。