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

问题描述

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

 

posted @ 2022-11-25 17:23  路边两盏灯  阅读(41)  评论(0编辑  收藏  举报