X509Certificate2构造函数引发Internal.Cryptographic.CryptoThrowHelp



我遇到了这里描述的类似问题。这是一个.NET Core 3.1应用程序,在Azure应用程序服务中作为Azure WebJob运行。根据上面链接中的讨论,我认为这是目录中文件计数的问题,我很难弄清楚哪个目录已满。Kudu门户网站上的环境页面显示了这一点,基本上似乎不是一个整体磁盘空间问题——

D:home usage: 57,344 MB total; 56,795 MB free
d:local usage: 11,264 MB total; 10,683 MB free

我也确实研究了上述链接中提到的路径,但没有取得多大成功。在我尝试相关问题中建议的代码修复之前,有没有办法弄清楚哪条路径是违规的?


[08/02/2020 09:20:53 > 4708f0: INFO] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: There is not enough space on the disk.
[08/02/2020 09:20:53 > 4708f0: INFO]    at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags)
[08/02/2020 09:20:53 > 4708f0: INFO]    at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags)
[08/02/2020 09:20:53 > 4708f0: INFO]    at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags)
[08/02/2020 09:20:53 > 4708f0: INFO]    at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData, String password)

除非PFX加载了X509KeyStorageFlags.EphemeralKeySet,否则私钥材料将写入磁盘。具体位置取决于PFX中的信息,但99.99%的PFX负载中使用的目录记录在https://learn.microsoft.com/en-us/windows/win32/seccng/key-storage-and-retrieval#key-目录和文件。

(在0.01%的情况下,PFX内容表示要将密钥加载到使用其他位置的其他存储提供商中。(

或者,除非您正在执行为数不多的需要命名密钥的操作之一,否则在加载PFX时请指定EphemeralKeySet

相关内容

  • 没有找到相关文章

最新更新