【问题标题】:Azure : Error using certificate obtained from Key Vault in App ServiceAzure:在应用服务中使用从 Key Vault 获得的证书时出错
【发布时间】:2020-10-15 15:39:25
【问题描述】:

在运行 net472 Web 应用程序的 Azure 应用程序服务中,我从密钥库访问证书,如下所示:

var certSecret = await kvClient.GetSecretAsync(kvName, secretName);

然后我需要发送证书以向外部服务进行身份验证

var cert = new X509Certificate2(Convert.FromBase64String(certSecret.Value));

这行报错

System.Security.Cryptography.CryptographicException: The system cannot find the file specified.

   at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
   at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
   at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData)
   at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData)

【问题讨论】:

    标签: azure azure-keyvault azure-managed-identity azure-appservice


    【解决方案1】:

    尝试获取如下秘密:

    var certSecret = await kvClient.GetSecretAsync(vaultBaseUrl, secretName);
    

    您可以检索certSecret.value 以检查它是否具有价值,然后将其发送到指定X509KeyStorageFlags 存储标志的X509Certificate2

    X509Certificate2 x509 = new X509Certificate2(Convert.FromBase64String(certSecret.value), string.Empty, X509KeyStorageFlags.MachineKeySet)
    

    【讨论】:

    • X509KeyStorageFlags.MachineKeySet 成功了
    猜你喜欢
    • 2021-09-08
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2019-02-16
    • 2018-09-11
    • 2023-04-10
    相关资源
    最近更新 更多