Service Fabric,我在哪里使用哪个证书?

Service Fabric, which certificate do I use where?

我正在 Azure 中设置一个 Service Fabric 集群,并希望通过 https 运行 一个 Web API(使用 .NET Core)。我想使用我的 CA 签名通配符 (*.mydomain.com) 证书来访问此 API。但是我有点困惑我在创建集群时在哪里使用它,是集群还是客户端证书?我在考虑客户端证书,但文档指出这是用于管理工具(即资源管理器)的,所以我不确定如何继续。

是的,我已经阅读了大量的帖子和资源,但我仍然感到困惑。

我们使用它的方式是在服务结构集群前面配置应用程序网关,并将 Web 证书上传到应用程序网关(并且 dns 指向应用程序网关)在这种情况下,SSL 在应用程序网关处终止.

另一种可能性是在 Service Fabric 集群中的每个节点终止 SSL,在这种情况下,您需要确保将证书部署到每个节点。

至于集群与客户端证书的困境,我也很困惑,但我认为答案都不是。客户端证书不确定,因为此证书用于在 运行 service fabric admin ps 脚本时将您标识为管理员。

我也不认为它是集群证书,这是 MS 文档所说的用途:

需要集群和服务器证书来保护集群并防止未经授权的访问。它以两种方式提供集群安全性: 集群身份验证:为集群联合身份验证节点到节点的通信。只有可以使用此证书证明其身份的节点才能加入集群。 服务器身份验证:向管理客户端验证集群管理端点,以便管理客户端知道它正在与真实集群对话。此证书还为 HTTPS 管理 API 和基于 HTTPS 的 Service Fabric Explorer 提供 SSL。

据我所知,此证书用于内部集群身份验证,并且还用于确保您的管理工具与正确的集群一起工作。

共有三种证书类型。以下是对它们的概述。

集群证书 用于 Explorer 端点并部署到主节点。因此,如果您在那里添加 *.mydomain.com 通配符证书,并将某些内容(例如 manage.mydomain.com)添加到 [yourcluster].[region].cloudapp.azure.com,那么当您访问管理端点时,该证书将呈现给网络浏览器。

反向代理 SSL 证书 部署到每个节点,并在使用 Service Fabric 的内置反向代理功能时使用。在这种情况下,这就是您点击 https://api.mydomain.com/YourAppName/YourService/Resource 时使用的内容(其中 api.mydomain.comyourcluster.region.cloudapp.azure.com 的另一个 CNAME)。这用作 运行 您自己的反向代理或其他卸载层(应用程序网关、IIS、nginx、API 管理等)的替代方法。

客户端证书 用于代替管理端点的 Azure Active Directory 身份验证。因此,不是在 AAD 中管理用户(使用 _Cluster AAD 应用程序和管理员/只读角色),而是通过向受信任的用户分发管理证书(管理员或只读)来管理访问。

您还可以使用这些证书的辅助证书,以便在证书更新情况下使用。