При попытке запроса 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.