【Azure Fabric Service】Service Fabric 托管群集通过 Connect-ServiceFabricCluster 连接时候报错 CertificatedNotMatched

Service,Fabric ,Connect,Azure · 浏览次数 : 18

小编点评

**问题描述:** 使用Key Vault 中证书,在自建的 Service Fabric 托管群集中连接 Service Fabric集群时,连接失败,错误消息为:`Connect-ServiceFabricCluster FABRIC_E_SERVER_AUTHENTICATION_FAILED: CertificateNotMatched`。 **分析:** 错误提示 `CertificateNotMatched` 指的是证书与服务器证书的类型不匹配导致的错误。由于 Service Fabric 托管群集通常使用自建证书,而 `ClientCertThumbprint` 使用的证书类型可能与 `ServerCertThumbprint` 不同,导致匹配失败。 **解决方案:** 1. **获取群集证书指纹:**使用 `Get-AzResource` 查询群集资源,并从 `properties` 属性中获取 `clusterCertificateThumbprints2`。 2. **设置客户端证书指纹:**使用 `Set-AzResource` 设置 `ClientCertThumbprint` 属性为获取的证书指纹。 3. **重新连接服务端:**使用 `Connect-ServiceFabricCluster` 连接 Service Fabric 集群,并确保 `ServerCertThumbprint` 与 `ClientCertThumbprint` 相同。 **代码示例:** ```powershell # 获取群集证书指纹 $serverThumbprint = (Get-AzResource -ResourceId '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ServiceFabric/managedclusters/mysfcluster').Properties.clusterCertificateThumbprints2 # 设置客户端证书指纹 Set-AzResource -ResourceName 'MyCluster' -Property ClientCertThumbprint $serverThumbprint # 重新连接服务端 Connect-ServiceFabricCluster -ConnectionEndpoint 'your sf name.chinaeast2.cloudapp.chinacloudapi.cn:19000' -KeepAliveIntervalInSec 10 -X509Credential -ServerCertThumbprint $serverThumbprint -FindType FindByThumbprint -FindValue $clientThumbprint -StoreLocation CurrentUser -StoreName My ```

正文

问题描述

Service Fabric 托管群集, 使用Key Vault中证书,把证书导入到本地安装后,使用该证书的 Thumbprint 作为指令 Connect-ServiceFabricCluster  的 ServerCertThumbprint 和FindValue 的值。结果连接失败,错误消息为:

Connect-ServiceFabricCluster FABRIC_E_SERVER_AUTHENTICATION_FAILED: CertificateNotMatched

 

 

问题解答

根据错误消息来看,就是使用的证书不对导致的。 而根据错误提示 FABRIC_E_SERVER_AUTHENTICATION_FAILED,  判断是 Connect-ServiceFabricCluster  中 ServerCertThumbprint 值错误。因为在自建的Service Fabric集群环境中, ServerCertThumbprint 和 FindValue (ClientCertThumbprint) 使用的同样的证书,所以他们值一样。

而Service Fabric 托管群集则不一样,Server Cert Thumbprint 需要通过 Get-AzResource 在集群的资源属性中获取。 托管集群将自动管理证书,并且在证书过期前的90天内自动更新。

 

1) 使用以下命令来查询群集资源,以获取群集证书指纹 ServerCertThumbprint  

$serverThumbprint = (Get-AzResource -ResourceId /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ServiceFabric/managedclusters/mysfcluster)
.Properties.clusterCertificateThumbprints

2) 获取到 serverThumbprint后,使用下面的命令就可以连接到Service Fabric托管集群

##服务端证书指纹
$serverThumbprint
= (Get-AzResource -ResourceId 'SF Resource ID' ).Properties.clusterCertificateThumbprints

##客户端证书指纹
$clientThumbprint= "XXXXXXXXXXXXXXXXXXXXXXXXXXX"

$connectionEndpoint = "<your sf name>.chinaeast2.cloudapp.chinacloudapi.cn:19000"

##连接到SF托管集群 Connect-ServiceFabricCluster -ConnectionEndpoint $connectionEndpoint -KeepAliveIntervalInSec 10 ` -X509Credential ` -ServerCertThumbprint $serverThumbprint ` -FindType FindByThumbprint ` -FindValue $clientThumbprint ` -StoreLocation CurrentUser ` -StoreName My

引用文档: https://learn.microsoft.com/zh-cn/azure/service-fabric/how-to-managed-cluster-connect#using-the-service-fabric-powershell-module

3) 连接成功!

 

 

 

参考资料

连接到 Service Fabric 托管群集 : https://learn.microsoft.com/zh-cn/azure/service-fabric/how-to-managed-cluster-connect#using-the-service-fabric-powershell-module

 

与【Azure Fabric Service】Service Fabric 托管群集通过 Connect-ServiceFabricCluster 连接时候报错 CertificatedNotMatched相似的内容:

【Azure Fabric Service】Service Fabric 托管群集通过 Connect-ServiceFabricCluster 连接时候报错 CertificatedNotMatched

问题描述 Service Fabric 托管群集, 使用Key Vault中证书,把证书导入到本地安装后,使用该证书的 Thumbprint 作为指令 Connect-ServiceFabricCluster 的 ServerCertThumbprint 和FindValue 的值。结果连接失败,错

【Azure Service Fabric】关于Service Fabric的相关问题

问题一:Service Fabric 是否支持Private Link? 在Azure Private Endpoint文档中,罗列出了 Azure 上支持 Private Link 的服务。Service Fabric不在其中。 Azure Private Link availability :h

【Azure 微服务】新创建的Service Fabric集群,如何从本地机器上连接到Service Fabric Explorer(Service Fabric状态/错误查看工具)呢?

问题描述 当在Azure中成功创建一个Service Fabric Cluster 服务后,我们能够在它的Overview页面中发现 Service Fabric Explorer的终结点,但是打开后,因为不知道如何获取证书,所以直接报错403。 那么,如何才能正确的访问 Service Fabri

Azure Function 时区设置

一,引言 Azure Function 上的默认使用UTC 运行程序,我们在获取时间,或者通过时间执行某些逻辑时,返回UTC 时间,导致业务数据不正常,由于 Azure Function 是微软提供的 IaaS 托管服务,我们无法登录服务器来修改时区,那么我们今天将来实践操作,如何通过配置达到更改

【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)

介绍一个简单的工具,用于将Redis数据从一个redis端点复制到另一个redis端点,基于原始存储库转换为.NET 8:https://github.com/LuBu0505/redis-copy-net8

【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)

在前一篇文章中,我们是把.NET 8应用读取SSL证书(X509)示例部署在App Service Windows环境中,那么如果部署在Linux环境,以及Linux Container中呢? 根据前文中的第一种方法,直接在把证书文件包含在源文件中,通过相对路径读取证书文件的方式,经测试,可以正常工

【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)

在使用App Service服务部署业务应用,因为有些第三方的接口需要调用者携带TLS/SSL证书(X509 Certificate),在官方文档中介绍了两种方式在代码中使用证书: 1) 直接使用证书文件路径加载证书 new X509Certificate2 2) 从系统的证书库中通过指纹加载...

Azure Service Principals ----- Azure 上最好保守的秘密的服务

一,引言 Azure Service Principals 是 Azure Active Directory (AAD) 中的一种标识,代表应用程序,服务,自动化流程。Service Principals 支持各种 Azure 服务和资源之家的安全通信,为应用程序提供了一种进行身份验证并于 Azur

【Azure Developer】如何通过Azure Portal快速获取到对应操作的API并转换为Python代码

问题描述 对于Azure资源进行配置操作,门户上可以正常操作。但是想通过Python代码实现,这样可以批量处理。那么在没有SDK的情况下,是否有快速办法呢? 问题解答 当然可以,Azure Portal上操作的所有资源都是通过REST API来实现的,所以只要找到正确的API,就可以通过浏览器中抓取

【Azure APIM】列举几种在APIM 策略中的主动生产的错误语句

问题描述 在为APIM服务配置了诊断日志(Diagnostic Setting),把日志收集在Log A Workspace中,需要验证日志中是否能查看到请求的错误信息。 所以想人为的来制造一些错误。经过网络搜索,参考Policy的文档介绍后,完成了以下3种错误 第一种:使用 return-resp