CryptographicException при загрузке сертификата для аутентификации TLS на стороне клиента - PullRequest
0 голосов
/ 07 апреля 2020

При попытке запроса https от нашего веб-приложения (которое выполняется на IIS с использованием. NET Framework 4.6.1) с аутентификацией на основе сертификата клиента TLS, мы получаем следующую ошибку при загрузке сертификата клиента:

System.Security.Cryptography.CryptographicException: The requested operation cannot be completed. The computer must be trusted for delegation and the current user account must be configured to allow delegation.

   at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
   at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
   at System.Security.Cryptography.X509Certificates.X509Utils.LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle pCertCtx)
   at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
   at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password)

Это происходит как при загрузке из файла, так и при загрузке из байтового массива. Я уже пытался импортировать файл p12 в сертификат локального компьютера и предоставить права пользователю пула приложений, на котором запущено веб-приложение, но это не устранило проблему.

Сервер работает на Windows Server 2012 R2 и использует активный каталог для управления пользователями. Веб-приложение работает на встроенном ApplicationPoolIdentity.

...