Что не так с моим поколением CSR inf?Предоставление ошибки Keyspec - PullRequest
0 голосов
/ 25 июня 2019

Я пишу программу на C #, которая будет создавать inf-файлы, а затем запускать certreq -new для генерации CSR и вывода содержимого. - На старых машинах (например, Windows Server 2008) я получаю общую ошибку

"[NewRequest] KeyAlgorithm = "ECDSA_P256" <=> KeySpec?

Редактирование CSR-файла вручную и полное удаление KeySpec, кажется, заставляют CSR проходить, но каждое руководство, которое я вижу, упоминает KeySpec, поэтому я не понимаю, делаю ли я что-то не так или что-то подобное.

string[] csrPairs = {"[NewRequest]", subjectLine, "Exportable = true", "ExportableEncrypted = true", "HashAlgorithm = sha256",
      "KeyAlgorithm = " + keyAlgorithm, "KeyLength = " + keysize, "KeySpec = 1", "MachineKeySet = true", "ProviderName = \"Microsoft Software Key Storage Provider\"","RequestType = PKCS10", "SMIME = false", "UseExistingKeySet = false"};

Вот код, который я использую для создания CSR, похоже, работает на Windows 10, но не на Windows 2008 Server.

Любая помощь будет принята с благодарностью. Есть ли что-то в Windows Serer 2008, о которой я не думаю? Или что-то, что мой новый компьютер установил бы для .net, а другой нет? (Целевая версия 3.5)

Примечание: любая помощь в понимании ключей также будет полезна. Кажется, «1» означает, что он может подписывать и шифровать, «2» может только подписывать - Не уверен, что по умолчанию или что 0 делает, или если я должен делать что-то еще здесь.

1 Ответ

1 голос
/ 26 июня 2019

Хм, думаю, я кое-что понял.

Поставщики CNG (Cryptography API: Next Generation) не используют KeySpec, просто он установлен на 0 - кажется, что этот параметр может мешать некоторым вещам, таким как создание CSR для подписи кода.

Обычные поставщики CSP / Legacy, похоже, в некоторых случаях могут определить нужный ключ, поэтому настройка KeySpec, но без алгоритма ключа, работает нормально - по крайней мере, из моего тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...