Конструктор X509Certificate2 выдает Internal.Cryptography.CryptoThrowHelper + WindowsCryptographicException: на диске недостаточно места - PullRequest
0 голосов
/ 06 августа 2020

Я столкнулся с аналогичной проблемой, которая описана здесь . Это приложение. NET Core 3.1, работающее как Azure WebJob в Azure App Service. Основываясь на обсуждении в приведенной выше ссылке, я предполагаю, что это проблема с количеством файлов в каталоге, у меня возникают проблемы с определением, какой каталог заполняется. Страница сред на портале 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)

1 Ответ

1 голос
/ 06 августа 2020

Если PFX не загружен с X509KeyStorageFlags.EphemeralKeySet, материал закрытого ключа записывается на диск. Конкретное место зависит от информации в PFX, но каталоги, используемые в 99,99% всех загрузок PFX, задокументированы в https://docs.microsoft.com/en-us/windows/win32/seccng/key-storage-and-retrieval#key -directories-and-files .

(в В случае 0,01% содержимое PFX сообщает, что ключ загружается в другой поставщик хранилища, который использует другое место.)

Или, если вы не выполняете одну из немногих вещей, требующих именованных ключей, укажите EphemeralKeySet при загрузке PFX.

...