从 Azure 函数中失败的 base64 编码字符串创建证书

Creating Certificate from base64 encoded string failing in Azure Function

我正在尝试从 base64 编码字符串创建 X509Certificate2。我已将此代码添加到示例 Azure 函数中。 代码在本地有效,我可以从 bas364 编码字符串创建一个证书对象,但是当发布到 Azure 时我得到一个异常
Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore 正在关注 https://github.com/dotnet/runtime/issues/30658 我将应用程序服务计划保留为“(P1v2: 1)”,不共享。

Use WEBSITE_LOAD_CERTIFICATES 应用程序在您的 Azure 函数中设置您的 Windows 托管应用程序可访问 Windows 证书存储中的指定证书,在 Current_User\Your_user.

在您的代码中,通过证书指纹访问证书。喜欢certificateThumbprint = "<your certificate thumbprint>";

Note: App Service inject the certificate paths into Windows containers. like variables WEBSITE_PRIVATE_CERTS_PATH, WEBSITE_INTERMEDIATE_CERTS_PATH, WEBSITE_PUBLIC_CERTS_PATH, and WEBSITE_ROOT_CERTS_PATH. Make sure you have to reference the certificate path with the environment variables instead of hardcoding the certificate path.

如果仍然遇到同样的问题,您可以在应用中添加 WEBSITE_LOAD_USER_PROFILE=1 应用设置。该错误表明特定用户无法访问该证书。它会解决你的问题。

参考here了解更多信息