Отсутствует опция "УПРАВЛЯТЬ ЧАСТНЫМИ КЛЮЧАМИ"

Я разрабатываю службу WCF с транспортной безопасностью, размещенной в IIS 7.5 под Windows 2008R2. У меня есть сертификат, сгенерированный в IIS 7.5, который хранится в локальной папке.

Когда я использую BasicHttpBinding или WSHttpBinding с Transport Security - все работает нормально. Но когда я меняю его на NetTcp, я получаю исключение:

 CryptographicException 'Keyset does not exist'. 

После небольшого поиска в Google я выяснил, что проблема может быть в том, что моя учетная запись NETSERVICE IIS не имеет права на приватный ключ моего сертификата.

Решение может заключаться в том, чтобы установить права на доступ в MMC, щелкнув правой кнопкой мыши мой сертификат и выбрав опцию "MANAGE PRIVATE KEYS". Но такого выбора в меню выбора нет! Сертификат был создан под учетной записью администратора и где я его открываю - он говорит, что у него есть закрытый ключ. Что я делаю неправильно?

Ответ 1

Перейдите на сервер → нажмите Пуск → Выполнить → тип mmc → введите → выберите оснастку "Сертификаты" с опцией "Локальный компьютер" → "Перейти к корневой консоли" → "Сертификаты" → "Личные" → "Сертификаты" → Выберите cert- > Щелкните правой кнопкой мыши- > Перейти ко всем задачам- > Управление приватными ключами- > Добавить разрешения

Ответ 2

Управление параметрами Private Keys отсутствовала, когда я впервые попытался добавить сертификаты. Наконец, исправил его, выполнив два шага.

  • Отметьте MMC как администратор. Файл- > Добавить или удалить оснастки- > Выбрать сертификаты → Нажмите кнопку "Добавить". Это откроет диалог. Эта оснастка всегда будет управлять сертификатом для: выберите учетную запись компьютера. Выберите компьютер, для которого требуется эта оснастка: выберите Локальный компьютер. Нажмите "Готово". Нажмите "ОК".

  • При импорте сертификатов (Все задачи → Импорт) в Личную папку убедитесь, что вы импортируете файл .pfx и НЕ файл .cer.

Ответ 3

У меня была такая же проблема (отсутствует опция "Управление приватными ключами" ). Чтобы заставить его появиться, мне пришлось добавить оснастку "Сертификаты", используя опцию "Компьютерная учетная запись", а не по умолчанию "Моя учетная запись пользователя"

Ответ 4

Может возникнуть еще одна проблема, поэтому я расскажу об этом. За исключением аргумента -pe при создании сертификата с помощью makecert.exe убедитесь, что вы импортируете файл .pfx, а не .cer. Если файл .pfx отсутствует, используйте созданный дополнительный инструмент, например pvk2pfx.exe.

Ответ 5

Параметр "Управление приватными ключами" доступен только для сертификатов с закрытым закрытым ключом

В моем случае я столкнулся с этой проблемой, несмотря на настройку оснастки "Сертификаты" для доступа к учетной записи COMPUTER. Кроме того, предложение получить сертификат.PFX в этом ответе не является для меня вариантом.

Я решил проблему, указав, что закрытый ключ можно экспортировать при создании запроса сертификата (который я делаю с помощью оснастки "Сертификаты MMC"):

enter image description here

Несмотря на то, что сертификат, который я получил из публичного центра сертификации, был .CER файлом, для него был доступен пункт меню "Управление приватными ключами". Я не знаю много о сертификатах, но я пришел к выводу, что параметр меню появляется только при закрытии закрытого ключа. В свете этого ответа, возможно, сертификаты в формате.PFX всегда позволяют это сделать. Тем не менее, хорошо знать, что это возможно для других форматов сертификатов.

Ответ 6

  1. Откройте командную строку (Запуск от имени администратора)
  2. Введите и выполните команду,
    certutil -repairstore мой "отпечаток" (замените отпечаток на 32 символа)
  3. Если удастся, вы получите сообщение,
    certUtil: команда -repairstore выполнена успешно.

Ответ 7

В Windows 10 1809 кажется, что опция " Управление приватными ключами" доступна только для сертификатов в личном хранилище. Обходной путь - это перетащить туда сертификат, добавить необходимые разрешения и перетащить обратно туда, где вам это нужно.