Добавление самоподписанного сертификата в хранилище доверенных корневых сертификатов с использованием командной строки

Вопрос или проблема

Есть ли способ добавить сертификат в Удостоверяющий центр корневых сертификатов локального компьютера с помощью командной строки? Я пытался использовать certmgr.exe, он показывает успех, но когда я проверяю корневой ЦС, я не вижу своего сертификата там.

Я следовал руководству здесь:

http://msdn.microsoft.com/en-us/library/ms172241.aspx

Собственно, пробую эту команду:

certmgr.exe -add -c mycertificate.cer -s -r localMachine root

Команда работает и показывает успех в командной строке, но я не вижу сертификат в реальном доверенном корневом хранилище через mmc. Процедура для самоподписанного сертификата отличается? Я настроил сервер IIS с привязкой SSL к этому сертификату, который изначально находится в магазине “MY”. Но я делаю все это через автоматизированные скрипты, поэтому хочу узнать, как добавить этот сертификат в доверенный корневой ЦС с помощью командной строки?

Вы пробовали это вручную (двойным щелчком на файле CER)? Если даже вручную это не работает, возможно, вы сталкиваетесь с ошибкой Vista.

Установка сертификата корневого ЦС из командной строки (cmd.exe)

(Это требует установочного пакета Windows SDK. Visual Studio установит его для вас и добавит в %PATH%.)

certmgr /add /c mycertificate.cer /s /r localMachine root

Обратите внимание, что ошибки не будут сообщены; команда всегда будет возвращать успех (даже при использовании несуществующего файла сертификата!). Если сертификат не отображается в Диспетчере сертификатов (certmgr.msc) после выполнения этой команды, повторите процесс, используя ручные шаги ниже, чтобы проверить, есть ли ошибка в вашем файле сертификата.

Ручные шаги для установки сертификата корневого ЦС

  1. Дважды щелкните на файле .cer.
  2. На диалоговом окне Сертификат нажмите Установить сертификат, чтобы запустить Мастер импорта сертификатов.
  3. На странице Приветствие нажмите Далее.
  4. На странице Хранилище сертификатов выберите Поместить все сертификаты в следующее хранилище и нажмите Обзор.
  5. В диалоговом окне Выбор хранилища сертификатов выберите Показать физические хранилища.
  6. Дважды щелкните Удостоверяющие центры корневых сертификатов, выберите Локальный компьютер, затем нажмите ОК.
  7. На странице Хранилище сертификатов нажмите Далее.
  8. На странице сведений просмотрите детали и нажмите Завершить.

Установка сертификата корневого ЦС из PowerShell

Смотрите отличный ответ @harrymc ниже.

Команду PowerShell
Import-Certificate
можно использовать для импорта сертификата:

Import-Certificate -FilePath "C:\path\Cert.Cer" -CertStoreLocation cert:\CurrentUser\Root

Чтобы выполнить это через командную строку (или пакетный файл), вы можете сделать это так:

powershell "Import-Certificate -FilePath ^"C:\path\Cert.Cer^" -CertStoreLocation cert:\CurrentUser\Root"

Обратите внимание на использование символа экранирования ^.

Чтобы перечислить все доступные хранилища сертификатов, запустите сеанс PowerShell и введите:

dir cert:\\LocalMachine\

В Powershell:

Import-Certificate -FilePath 'C:\path\Cert.Cer' -CertStoreLocation Cert:\LocalMachine\Root"

Расположение пути должно иметь ', а не " для cmd.

Ответ или решение

Как добавить самоподписанный сертификат в доверенное корневое хранилище сертификатов с использованием командной строки

При работе с сертификатами и их управлением в Windows вы можете столкнуться с необходимостью добавления самоподписанного сертификата в доверенное корневое хранилище сертификатов на локальном компьютере через командную строку. Ниже приведена детальная инструкция по выполнению этой задачи, а также возможные причины проблем, которые могут возникнуть в процессе.

Подготовка

  1. Убедитесь, что у вас есть необходимый сертификат. Вам потребуется файл самоподписанного сертификата с расширением .cer. Убедитесь, что файл существует и не поврежден.

  2. Запуск командной строки с правами администратора. Для успешного выполнения команд, касающихся управления сертификатами, необходимо, чтобы команда командной строки (cmd) была запущена с правами администратора.

Использование команды Certutil

Наиболее надежным методом добавления сертификата в доверенное корневое хранилище является использование команды certutil, которая является частью Windows SDK. Для этого выполните следующие шаги:

  1. Откройте командную строку (cmd) с правами администратора.

  2. Введите следующую команду для добавления сертификата:

    certutil -addstore root "C:\путь\к\вашему\сертификату.cer"

    Замените C:\путь\к\вашему\сертификату.cer на фактический путь к вашему файлу сертификата.

  3. Проверьте статус выполнения команды. Вы должны увидеть сообщение о том, что операция прошла успешно.

Использование PowerShell

В качестве альтернативы, вы можете воспользоваться PowerShell для добавления сертификата. Вот как это можно сделать:

  1. Откройте PowerShell с правами администратора.

  2. Выполните следующую команду:

    Import-Certificate -FilePath "C:\путь\к\вашему\сертификату.cer" -CertStoreLocation Cert:\LocalMachine\Root

    Аналогично, замените C:\путь\к\вашему\сертификату.cer на актуальный путь к вашему файлу.

  3. Проверьте наличие сертификата в хранилище, воспользовавшись следующей командой:

    Get-ChildItem -Path Cert:\LocalMachine\Root

    Это позволит вам убедиться в том, что сертификат был успешно добавлен.

Проблемы и диагностика

Если после выполнения всех этих команд сертификат не отображается в хранилище, возможны следующие проблемы:

  1. Неверный путь к сертификату. Убедитесь, что вы указали правильный путь к файлу сертификата.

  2. Ошибки в сертификате. Попробуйте открыть сертификат вручную (двойным щелчком) и убедитесь, что он корректен.

  3. Проблемы с правами доступа. Возможно, ваша учетная запись не имеет достаточных прав для изменения хранилищ сертификатов. Убедитесь, что вы выполняете команды от имени администратора.

  4. Баги в системе. Возможны системные ошибки, например, связанные с версией Windows. В случае, если проблема сохраняется, попытайтесь выполнить добавление сертификата вручную через интерфейс.

Заключение

Добавление самоподписанного сертификата в доверенное корневое хранилище через командную строку является важной задачей на этапе настройки серверов и приложений. Основные команды certutil и Import-Certificate позволяют эффективно управлять сертификатами без необходимости графического интерфейса. Следуя вышеуказанным рекомендациям, вы сможете избежать распространенных ошибок и обеспечить правильную работу вашего сертификата.

Оцените материал
Добавить комментарий

Капча загружается...