ServiceFabric 本地群集中的 HTTPS 通信

Posted

技术标签:

【中文标题】ServiceFabric 本地群集中的 HTTPS 通信【英文标题】:HTTPS communication in ServiceFabric Local Cluster 【发布时间】:2017-10-16 13:28:53 【问题描述】:

这是我的设置

作为无状态可靠 ASP.NET Core 服务的 IdentityServer 4。 WebAPI 作为可靠的 ASP.NET Core 服务。

将它们与 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 本地集群管理器在 localhost 中完成这项工作?

谢谢

【问题讨论】:

这很可能是证书问题,请告诉我们您的Startup.cs 我遇到了类似的问题,请查看***.com/questions/43971397/… 【参考方案1】:

这是我的两美分,但需要验证...

我假设您已使用以下文章或类似文章创建了自签名证书,但该证书具有相同的属性。

https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-configure-ssl-certificate

这意味着证书无法通过实际 CA 进行验证。当然,使用自签名证书是不可能的。

现在,当您将证书上传到 Azure 应用服务时,它会安装在 CurrentUser - MyStore 中。使用自签名证书,它还需要安装在 LocalMachine 根存储中。

这是因为机器的证书颁发机构可以验证该证书是否有效。 (如果我错了,可能是安全专家可以纠正我,但那是我的理论)。我在本地托管的 Windows 服务器上进行了相同的设置,其中自签名证书安装在根证书存储以及个人存储中,并且该应用程序可以运行。这就是我相信会发生这种情况的原因。

所以这部分需要验证。以下是向您展示如何在 Azure 应用服务中执行此操作的文章。

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

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

编辑:

我刚刚对此进行了测试,事实就是如此。在云服务中,您可以按照上面第二个链接所示的方式创建 Web 作业,将证书安装在适当的商店中。

不幸的是,对于 Azure 应用服务,您无权访问根存储。它必须安装在 CurrentUser 的个人商店中。这意味着自签名证书将不起作用,您必须购买真正的证书。 :( 我认为这是对微软的一个真正的大拇指。为什么我需要为我的开发/测试环境支付真正的证书?(咆哮)

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

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

希望这会有所帮助。

【讨论】:

这也是我的想法 谢谢。我差点忘了这件事。就是这样,我真的需要使用适当的证书。 :(

以上是关于ServiceFabric 本地群集中的 HTTPS 通信的主要内容,如果未能解决你的问题,请参考以下文章

您是不是可以在本地调试 Service Fabric 群集?

使用 MSI 从本地 Service Fabric 群集访问 Key Vault

无法将 Service Fabric 应用程序部署到开发/本地群集

无法访问 Service Fabric 本地群集管理器

在 Azure 中收集 Service Fabric 群集日志

Service Fabric 本地群集管理器节点设置错误