не могу открыть файл сертификата *.pfx при помощи C# и x509 certificate2 throws an exception: сетевой пароль указан неверно

Рейтинг: 0Ответов: 1Опубликовано: 23.03.2023

Почему на Windows 10 LTSB v1607 не открывается сертификат *.pfx, хотя работает через Postman? X509Certificate2 certificate = new X509Certificate2(PachCertificate, PasswordPrivateKey); На старых win выдаёт одинаковое исключение: "сетевой пароль указан неверно"

Тот же способ нормально работает на Windows 10 LTSC v1809. Может не хватает каких то пакетов? Пробовал разные параметры для флага X509KeyStorageFlags - не помогло.

Ответы

▲ 1

Решение вопроса было найдено тут: https://bazanovv.livejournal.com/38828.html

Сертификат можно выпустить с разными криптоалгоритмами, но сейчас речь не про них. Когда пара из сертификата и закрытого ключа экспортируется в файл .pfx для переноса на другой компьютер и т.п., она шифруется. При этом может использоваться алгоритм AES256-SHA256, TripleDES-SHA1 или другие, более старые. Так вот, шифрование pfx AES256-SHA256 понимает (в том числе умеет экспортировать в него) только Windows 10 сборка выше 1703, или Windows Server 2019. В более старых версиях при попытке импорта такого сертификата будет вводящее в заблуждение сообщение об ошибке пароля "The password you entered is incorrect" (не может расшифровать, а других сообщений нет). Чтобы исправить, необходимо импортировать сертификат на поддерживающей шифрование pfx SHA256 платформе с галкой, разрешающей экспорт закрытого ключа, а потом экспортировать назад с шифрованием 3des-sha1, оно спросит. И не содавать шифрованных sha256 pfx, если их предполагается испольозвать на старых версиях Windows.