Ошибка импорта CertUtil pfx: NTE_NOT_SUPPORTED - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь установить флаг KeySpe c на существующем сертификате для использования в роли шифрования сервера SQL. Текущий KeySpe c равен 0, и мне нужно, чтобы он был 1.

Способ сделать это - сначала экспортировать сертификат, его закрытый ключ и использование ключей в файл .pfx (с пароль, независимо от того, что он утверждает). Затем, используя certutil, запустите certutil -importpfx AT_KEYEXCHANGE.

Это «работает» в том смысле, что запрашивает пароль (который введен правильно), но выдает следующее сообщение об ошибке:

CertUtil: -importPFX command FAILED: 0x80090029 (-2146893783 NTE_NOT_SUPPORTED) CertUtil: запрошенная операция не поддерживается.

К сожалению, в Интернете я не так много нашел - очевидно, только этот пост:

https://anotherexchangeblog.wordpress.com/tag/importpfx-command-failed-0x80090029/

Похоже, что это проблема с разрешениями в каталоге, расположенном в C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys. В частности, у этой «СИСТЕМЫ» были разрешения, которые он удалил и заставил certutil работать. Однако моя копия этого каталога не имеет СИСТЕМЫ с разрешениями - она ​​выглядит так же, как его изображение.

Не намного больше, чем go on, и этот метод импорта certutil кажется единственный способ установить KeySpe c на 1. Что я могу сделать отсюда, чтобы позволить мне импортировать этот ключ с правильным флагом KeySpe c?

1 Ответ

1 голос
/ 10 июля 2020

Я столкнулся с этой проблемой после создания моего закрытого ключа с помощью Template = (No Template) CNG Key

Чтобы преобразовать из ключа CNG обратно в Legacy Key, вы можете использовать OpenSSL (https://www.google.com/search?q=Download+windows+OpenSSL ), чтобы перекодировать сертификат

  1. Экспорт текущего сертификата в pem без пароля

    openssl pkcs12 -in mycert.pfx -out tmpmycert.pem -nodes

  2. Преобразование pem в новый файл pfx с паролем:

    openssl pkcs12 -export -out mycert2.pfx -in tmpmycert.pem

Вы можете избежать проблемы, сгенерировав CSR с помощью Template = (No Template) Legacy Key

Удачи!

...