我有一个独立的ServiceFabric群集(3个节点)。我创建了用于服务器和客户端授权的SSL证书。然后,我将证书指纹分配给群集配置。一切正常(群集运行状况还可以,我的应用程序也能正常工作。但是Microsoft-ServiceFabric / Admin日志中存在很多错误。以下警告和错误会每分钟写入日志:
我向网络服务和系统的私钥存储分配了写许可。我还为gMSA帐户分配了PK存储空间。但是错误仍然存在。 另一方面,一切看起来都很好,可以正常运行并集群... 这是我的群集配置(安全部分):
“安全性”:{
“ ServerCredentialType”:“ X509”,
“ ClusterCredentialType”:“ Windows”,
“ WindowsIdentities”:{
“ ClustergMSAIdentity”:“ gMSAccountName@domain.com”,
“ ClusterSPN”:“ http / servicefabric”
},
“ CertificateInformation”:{
“ ServerCertificate”:{
“缩略图”:“ {Cert Thumbprint}”,
“ X509StoreName”:“我的”
},
“ ClientCertificateThumbprints”:[
{
“ CertificateThumbprint”:“ {Cert Thumbprint}”,
“ IsAdmin”:true
}
],
“ X509StoreName”:“我的”
}
}
对于x509认证的创建,我使用了OpenSSL 1.0.2k-fips,2017年1月26日。我按照本文中的步骤操作:https://gist.github.com/harishanchu/e82d759c0235379d1778f799992b5774 谁能澄清这个问题?
答案 0 :(得分:3)
似乎angular.module('xxxxx').directive('bmApp', bmApp);
bmApp.$inject = ['$document', '$log', 'matchmedia', 'AuthenticatedSession', 'bmUser'];
function bmApp($document, $log, matchmedia, authenticatedSession, bmUser) {
return {
restrict: 'EA',
controller: [function () { }],
scope: true,
link: function (scope, element, attrs) {
var html = $document.find('html');
if (attrs.bmApp !== 'pre-auth') {
/* load intrinsic post-auth objects */
authenticatedSession.load().then(function(data) {
$log.log('session:', { meta: data.meta, bindings: data.bindings });
}).finally(function () {
html.addClass('bm-resolved');
});
bmUser.load();
}
}
};
}
文件夹中没有私钥文件。
要验证文件夹中是否有物理文件,请运行以下powershell命令:
MachineKeys
如果收到$certThumb = "1D6523F622E33DF46382D081BCA9AE9A2D8D78CC"
Try
{
$WorkingCert = Get-ChildItem CERT:\LocalMachine\My |where {$_.Thumbprint -match $certThumb} | sort $_.NotAfter -Descending | select -first 1 -erroraction STOP
$TPrint = $WorkingCert.Thumbprint
$rsaFile = $WorkingCert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
}
Catch
{
"Error: unable to locate certificate for $($CertCN)"
Exit
}
if ($WorkingCert.PrivateKey) {
$WorkingCert.PrivateKey
}
else
{
"No private key found"
}
消息,则表明No private key found
文件夹中没有私钥。即使证书属性可以另行声明(有钥匙图标和消息MachineKeys
)。虽然我不知道为什么,但是对于某些证书,上述情况会发生。
作为一种解决方法,请按照下列步骤操作:
You have a private key that corresponds to this certificate
用户的访问权限。如果按照上述步骤操作,私钥将被添加到Network Service
文件夹中,并且错误将消失。
显然,您必须为每个群集节点重复这些步骤。