Отсутствует опция "УПРАВЛЯТЬ ЧАСТНЫМИ КЛЮЧАМИ"
Я разрабатываю службу 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
- Откройте командную строку (Запуск от имени администратора)
- Введите и выполните команду,
certutil -repairstore мой "отпечаток" (замените отпечаток на 32 символа) - Если удастся, вы получите сообщение,
certUtil: команда -repairstore выполнена успешно.
Ответ 7
В Windows 10 1809 кажется, что опция " Управление приватными ключами" доступна только для сертификатов в личном хранилище. Обходной путь - это перетащить туда сертификат, добавить необходимые разрешения и перетащить обратно туда, где вам это нужно.