OpenIddict 证书 - System.Security.Cryptography.CryptographicException:错误数据

问题描述 投票:0回答:1

我有一个 API Web 应用程序托管在 azure(免费层)中,使用 OpenIddict 进行授权。

我正在尝试在托管环境中设置 OpenIddict 以使用 2 个自签名证书

AddEncryptionCertificate()
AddSigningCertificate()

但迄今为止我的所有努力都导致了不可预测的行为和各种加密异常。 (访问被拒绝,未找到密钥集)

我当前的尝试涉及使用 SelfCert 生成 2 个证书文件 (.ptx),并将它们作为嵌入式资源存储在我的 API 中。

然后我将这些设置为 OpenIddict 的证书值;

options.AddEncryptionCertificate(typeof(IdentityServiceCollectionExtensions).Assembly, "Namespace.certificateName", "password");
options.AddSigningCertificate(typeof(IdentityServiceCollectionExtensions).Assembly, "Namespace.certificateName", "password");

这似乎总是会导致以下异常

未处理的异常。 System.Security.Cryptography.CryptographicException:错误数据。

我相信证书本身没问题, 在幕后,这些重载方法将 storageFlag 设置为

X509KeyStorageFlags.EphemeralKeySet

我确信这里的元素是一致的,并且导致错误抛出。我很好奇是否有人以前遇到过这个问题或者了解为什么会抛出这个错误?

azure .net-8.0 x509certificate2 openiddict cryptographicexception
1个回答
0
投票

经过大量研究和测试,我得出的结论是,这是 Azure 共享层 (F1) 的属性,并且具有敌对性质。

我在试用期内有一些剩余的积分,因此我将我的应用程序服务切换到基本计划,并且这开始正常工作。

我将探索其他托管选项,因为 Azure B1 层对于我的用例来说非常昂贵,但将其留在这里供任何人将来参考。

参考我的发现这里

© www.soinside.com 2019 - 2024. All rights reserved.