ServiceFabric 本地集群中的 HTTPS 通信

3

这是我的设置

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

使用它们与JS客户端,现在可以使用HTTP工作。问题出在HTTPS上。WebAPI需要通过htttps [is4URL].well-known/openid-configuration请求openID配置文件。我收到了这个错误

System.InvalidOperationException:无法从以下位置获取配置: 'https://localhost:9999/.well-known/openid-configuration'. ---> System.IO.IOException:无法从以下位置检索文档: 'https://localhost:9999/.well-known/openid-configuration'. ---> System.Net.Http.HttpRequestException:发送请求时发生错误。 ---> System.Net.WebException:基础连接已关闭:无法建立SSL/TLS安全通道的信任关系。 ---> System.Security.Authentication.AuthenticationException:根据验证过程,远程证书无效。

有人能帮我让这个在本地主机上通过SF Local Cluster Manager工作吗?

谢谢


这很可能是证书问题,请向我们展示您的 Startup.cs 文件。 - moritzg
我遇到了非常相似的问题,看看这个链接:http://stackoverflow.com/questions/43971397/identity-server-4-deployment-on-azure-app-service-certificate-dev-issue - daehaai
1个回答

3
以下是我的建议,但需要进行验证...
我假设您已经按照以下文章或类似文章创建了自签名证书,但该证书具有相同的属性。

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

这意味着证书无法通过实际的CA进行验证。当然,使用自签名证书是不可能的。
现在,当您将证书上传到Azure应用服务时,它会安装在CurrentUser-MyStore中。对于自签名证书,还需要在LocalMachine根存储中安装。
这是因为机器的证书颁发机构可以验证该证书是否有效。(如果我错了,也许安全专家可以纠正我,但这是我的理论)。我在本地托管的Windows服务器上有相同的设置,其中自签名证书也安装在根证书存储和个人存储中,应用程序可以正常工作。这就是我认为会发生这种情况的原因。
因此,需要验证以下部分。以下是一篇文章,向您展示如何在Azure应用服务中执行此操作。

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

再次强调,这只是一种理论,需要进行验证。:)

编辑:

我刚刚测试了一下,确实如此。在云服务中,您可以像上面第二个链接中所示那样创建 Web Job,并在适当的存储库中安装证书。

对于 Azure 应用服务,不幸的是,您无法访问根存储库。它必须安装在当前用户的个人存储库中。这意味着自签名证书将无法使用,您必须购买真正的证书。:( 我认为这是对 Microsoft 的真正打击。为什么我需要为我的开发/测试环境支付真正的证书费用?(吐槽结束)

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

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

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

希望这能帮到您。

1
那也是我的想法。 - Mardoxx
谢谢。我差点忘了这件事。所以,这就是关键了,我真的需要使用一个合适的证书。 :( - CBlunt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接