- Вопрос или проблема
- Установка сертификата корневого ЦС из командной строки (cmd.exe)
- Ручные шаги для установки сертификата корневого ЦС
- Установка сертификата корневого ЦС из PowerShell
- Ответ или решение
- Как добавить самоподписанный сертификат в доверенное корневое хранилище сертификатов с использованием командной строки
- Подготовка
- Использование команды Certutil
- Использование PowerShell
- Проблемы и диагностика
- Заключение
Вопрос или проблема
Есть ли способ добавить сертификат в Удостоверяющий центр корневых сертификатов локального компьютера с помощью командной строки? Я пытался использовать 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
) после выполнения этой команды, повторите процесс, используя ручные шаги ниже, чтобы проверить, есть ли ошибка в вашем файле сертификата.
Ручные шаги для установки сертификата корневого ЦС
- Дважды щелкните на файле
.cer
. - На диалоговом окне Сертификат нажмите Установить сертификат, чтобы запустить Мастер импорта сертификатов.
- На странице Приветствие нажмите Далее.
- На странице Хранилище сертификатов выберите Поместить все сертификаты в следующее хранилище и нажмите Обзор.
- В диалоговом окне Выбор хранилища сертификатов выберите Показать физические хранилища.
- Дважды щелкните Удостоверяющие центры корневых сертификатов, выберите Локальный компьютер, затем нажмите ОК.
- На странице Хранилище сертификатов нажмите Далее.
- На странице сведений просмотрите детали и нажмите Завершить.
Установка сертификата корневого ЦС из 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 вы можете столкнуться с необходимостью добавления самоподписанного сертификата в доверенное корневое хранилище сертификатов на локальном компьютере через командную строку. Ниже приведена детальная инструкция по выполнению этой задачи, а также возможные причины проблем, которые могут возникнуть в процессе.
Подготовка
-
Убедитесь, что у вас есть необходимый сертификат. Вам потребуется файл самоподписанного сертификата с расширением
.cer
. Убедитесь, что файл существует и не поврежден. -
Запуск командной строки с правами администратора. Для успешного выполнения команд, касающихся управления сертификатами, необходимо, чтобы команда командной строки (cmd) была запущена с правами администратора.
Использование команды Certutil
Наиболее надежным методом добавления сертификата в доверенное корневое хранилище является использование команды certutil
, которая является частью Windows SDK. Для этого выполните следующие шаги:
-
Откройте командную строку (cmd) с правами администратора.
-
Введите следующую команду для добавления сертификата:
certutil -addstore root "C:\путь\к\вашему\сертификату.cer"
Замените
C:\путь\к\вашему\сертификату.cer
на фактический путь к вашему файлу сертификата. -
Проверьте статус выполнения команды. Вы должны увидеть сообщение о том, что операция прошла успешно.
Использование PowerShell
В качестве альтернативы, вы можете воспользоваться PowerShell для добавления сертификата. Вот как это можно сделать:
-
Откройте PowerShell с правами администратора.
-
Выполните следующую команду:
Import-Certificate -FilePath "C:\путь\к\вашему\сертификату.cer" -CertStoreLocation Cert:\LocalMachine\Root
Аналогично, замените
C:\путь\к\вашему\сертификату.cer
на актуальный путь к вашему файлу. -
Проверьте наличие сертификата в хранилище, воспользовавшись следующей командой:
Get-ChildItem -Path Cert:\LocalMachine\Root
Это позволит вам убедиться в том, что сертификат был успешно добавлен.
Проблемы и диагностика
Если после выполнения всех этих команд сертификат не отображается в хранилище, возможны следующие проблемы:
-
Неверный путь к сертификату. Убедитесь, что вы указали правильный путь к файлу сертификата.
-
Ошибки в сертификате. Попробуйте открыть сертификат вручную (двойным щелчком) и убедитесь, что он корректен.
-
Проблемы с правами доступа. Возможно, ваша учетная запись не имеет достаточных прав для изменения хранилищ сертификатов. Убедитесь, что вы выполняете команды от имени администратора.
-
Баги в системе. Возможны системные ошибки, например, связанные с версией Windows. В случае, если проблема сохраняется, попытайтесь выполнить добавление сертификата вручную через интерфейс.
Заключение
Добавление самоподписанного сертификата в доверенное корневое хранилище через командную строку является важной задачей на этапе настройки серверов и приложений. Основные команды certutil
и Import-Certificate
позволяют эффективно управлять сертификатами без необходимости графического интерфейса. Следуя вышеуказанным рекомендациям, вы сможете избежать распространенных ошибок и обеспечить правильную работу вашего сертификата.