Service Fabric Cluster节点无法从证书中获取私钥

时间:2016-09-07 20:31:44

标签: azure ssl azure-service-fabric

我有一个运行单个应用程序的5节点服务结构集群。我使用自签名证书加密了我的应用设置。此证书已上传到keyvault,我已将此URL提供给我的应用程序。我可以看到我的VM上安装了cert,运行Invoke-ServiceFabricDecryptText也会返回正确的解密值。但是,在查看我的管理控制台时,我看到了这个错误:

Error event: SourceId='System.Hosting', Property='Activation:1.0'.
There was an error during activation.Failed to ACL folders or certificates required by application. Error:0x80090014

查看节点日志,我看到这些条目与上面的错误相对应:

2016-9-7 20:09:44.541,Informational,2148,2580,Common.CryptoUtility,GetCertificate(LocalMachine, MY, FindByThumbprint:)
2016-9-7 20:09:44.541,Informational,2148,2580,Common.CryptoUtility,GetCertificate: match found: thumbprint = [thumbprint], expiration = 2017-09-02 16:08:04.000
2016-9-7 20:09:44.541,Error,2148,2580,Common.CryptoUtility,CryptAcquireCertificatePrivateKey failed. Error:0x80090014
2016-9-7 20:09:44.541,Error,2148,2580,Common.SecurityUtility,Failed to get the Certificate's private key. [thumbprint]. Error: 0x80090014
2016-9-7 20:09:44.541,Warning,2148,2580,Hosting.ProcessActivationManager,ACLing private key filename for thumbprint [thumbprint]. ErrorCode=0x80090014

我不知所措。

2 个答案:

答案 0 :(得分:2)

结束了一个糟糕的证书。我最初上传到Keyvault的是在豪华版中使用New-SelfSignedCertificate的现有证书。然后我使用带有-CreateSelfSignedCertificate开关的Invoke-AddCertToKeyVault命令在Key Vault中添加了第二个,它工作正常。

答案 1 :(得分:0)

这通常意味着目前尚未创建群集证书。由于其私钥不可检索。

如果您使用ServiceFabricRPHelpers.psm1(Invoke-AddCertToKeyVault和-CreateSelfSignedCertificate)来创建自签名证书 - 除非安装了PSPKI版本3.2.5,否则您应该知道它会创建此类无效证书。即使您使用PSPKI版本3.2.6(或未安装PSPKI),它也会创建无效的证书,因为ServiceFabricRPHelpers.psm1中存在错误。 我在这里解决了这个问题(但它还没有合并) https://github.com/ChackDan/Service-Fabric/pull/31

作为一种解决方法, 1.从https://pspki.codeplex.com/releases/view/625365安装最新的PSPKI 2.在运行Invoke-AddCertToKeyVault之前,将此处的修复https://github.com/ChackDan/Service-Fabric/pull/31应用于ServiceFabricRPHelpers.psm1

修复合并后,我将更新此帖子......