Страница 1 из 1

Добавляем сертификат в корневые из командной строки

Добавлено: 03 май 2017 07:46, Ср
UncleFather

Задача:

Необходимо из командной строки (или скрипта) добавить (установить) сертификат(ы) из файлов crt, cer в хранилище «Доверенные корневые центры сертификации» текущего пользователя (или в любое другое хранилище).


Решение:

Для решения задачи нам потребуется утилита Certmgr.exe (Certificate Manager Tool), входящая в комплект Visual Studio. Не путаем ее с оснасткой Certmgr.msc.

Диспетчер сертификатов (Certmgr.exe) является служебной программой командной строки, в то время как сертификаты (Certmgr.msc) — это оснастка консоли управления (MMC). Поскольку файл Certmgr.msc обычно находится в системном каталоге Windows, при вводе certmgr в командной строке может загрузиться оснастка консоли управления (MMC) "Сертификаты", даже если открыта командная строка Visual Studio. Это происходит потому, что путь к оснастке предшествует пути к диспетчеру сертификатов в переменной среды PATH. При возникновении этой проблемы команды Certmgr.exe можно выполнить, указав путь к исполняемому файлу.

Так же утилита Certmgr.exeвходит в комплект Microsoft Windows SDK for Windows 7 and .NET Framework 4
Либо ее можно скачать прямо здесь:

CertMgr.rar
(21.47 КБ) 2666 скачиваний

Скачиваем утилиту, а дальше все элементарно просто. Для добавления сертификата из файла в хранилище «Доверенные корневые центры сертификации» текущего пользователя, складываем Certmgr.exe и файл сертификата в одну папку и выполняем команду:

Код: Выделить всё

certmgr.exe -add имя_файла_сертификата.cer -s Root -all

Таким образом, можно добавить сертификаты не только в «Доверенные корневые центры сертификации», но и в другие хранилища. Справка по ключам запуска доступна непосредственно из командной строки. Много информации о ключах и утилите Certmgr.exe так же есть в интернете (в том числе, по приведенным выше ссылкам), поэтому повторяться не буду.

Для установки сертификатов из нескольких файлов в хранилище «Доверенные корневые центры сертификации» текущего пользователя, складываем Certmgr.exe и все файлы сертификатов в одну папку и выполняем скрипт:

Код: Выделить всё

certmgr.exe -add имя_файла_сертификата_1.cer -s Root -all
certmgr.exe -add имя_файла_сертификата_2.cer -s Root -all
certmgr.exe -add имя_файла_сертификата_3.crt -s Root -all
certmgr.exe -add имя_файла_сертификата_4.crt -s Root -all

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

Для распространения набора сертификатов, удобно запаковывать его вместе с Certmgr.exe в самораспаковывающийся архив. О том как настроить параметры самораспаковывающегося архива, читаем в статье VBS. Как перекомпилировать (конвертировать) VBS в exe Решение 2. В приведенном решении все шаги оставляем без изменений, кроме Вкладка [bУстановка[/b] -> Выполнить скрипт после распаковки -> здесь записываем команды из приведенного выше скрипта.