Для каждого приложения Service Fabric, которое я пытаюсь запустить и которое использует один или несколько экземпляров SecretsCertificate
, приложение не запускается в моем локальном кластере Service Fabric со следующей ошибкой на узле> Приложение в SF Explorer:
Error event: SourceId='System.Hosting', Property='Activation:1.0'.
There was an error during activation.Failed to configure certificate permissions. Error E_FAIL.
Service Fabric также регистрирует несколько соответствующих элементов в средстве просмотра событий> Журналы приложений и служб> Microsoft-Service Fabric> Раздел администратора:
CryptAcquireCertificatePrivateKey failed. Error:0x8009200b
Can't get private key filename for certificate. Error: 0x8009200b
All tries to get private key filename failed.
Failed to get the Certificate's private key.
Thumbprint:4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC. Error: E_FAIL
Failed to get private key file. x509FindValue: 4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC, x509StoreName: My, findType: FindByThumbprint, Error E_FAIL
ACLing private key filename for thumbprint 4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC. ErrorCode=E_FAIL
ConfigureCertificateACLs: error=E_FAIL
Я удалил и переустановил сертификат (который подтвержден для работы в локальной Service Fabric нескольких других разработчиковсреды разработки кластера) и установите для закрытого ключа явные права полного доступа для пользователя NETWORK SERVICE
на моем компьютере, что не помогло.
Я следовал инструкциям в этот ответ который фактически распечатываетПравильно сожрал ключевые детали, несмотря на то, что локальный кластер SF не смог получить к нему доступ.
Я переустановил Microsoft Service Fabric SDK и Microsoft Visual Studio 2017, которые также не решили эту проблему.
ВсеПопытки воссоздать эту ошибку в C # и PowerShell оказались бесплодными, однако служба Service Fabric, по-видимому, не может получить доступ к закрытым ключам из моего хранилища сертификатов.
Редактировать: дальнейший прогресс, нет решения.
Я могу успешно расшифровать данные с помощью командлета PowerShell Invoke-ServiceFabricDecryptText
, но локальный кластер SF по-прежнему имеет ту же ошибку.
Я определил, что файл, указанный вметаданные сертификата (из ранее упомянутого ответа SO ) PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
не существует на моем диске по пути C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys\
или любым соседним путям.Кто-нибудь видел это раньше?