Создание временного сертификата для использования во время разработки
Что такое MakeCert
MakeCert - инструмент для создания сертификатов X.509, которые предназначены исключительно для тестирования разрабатываемого приложения. Этот инструмент создает пару ключей(открытый и закрытый) для цифровой подписи и помещает её в файл сертификата!!!
MakeCert входит в состав пакета Windows SDK, который можно скачать с http://go.microsoft.com/fwlink/p/?linkid=84091. Если вам не хочется устанавливать целый пакет разработчика, то вот ссылка на сам файл.
Создание временного сертификата
MakeCert - это консольное приложение. Для работы с ним необходимо запустить командную строку(от имени Администратора) и ввести команду запуска приложения с указанными параметрами: makecert [options] outputCertificateFile, где outputCertificateFile - имя файла с расширением .cer, в который будет записан тестовый сертификат X.509, options - параметры создания сертификата.
Описание параметров приведено на сайте MSDN по этой ссылке.
Пример вызова makecert.exe: makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer
Что бы создать временный сертификат, необходимо выполнить два действия. Первое - создать самозаверяющий сертификат, который будет использоваться в качестве корневого сертификата для временного сертификата. Второе - создать сам временный сертификат, подписанный корневым сертификатом.
Создание самозаверяющего сертификата корневого центра и экспорт закрытого ключа
Выполняем в командной строке:
makecert -n "CN=TempCert" -r -sv TempCert.pvk TempCert.cer
![]() |
Создание самозаверяющего сертификата |
- -n (subjectName) - задает имя субъекта. Согласно правилам, к имени субъекта добавляется префикс "CN = " для "Common Name";
- -r - указывает, что сертификат самозаверяющий;
- -sv (privateKeyFile) - указывает файл, содержащий контейнер закрытого ключа. То есть закрытый ключ будет храниться не в сертификате, а в файле. Он нам еще пригодится.
При выполнении данной команды, MakeCert попросит ввести пароль на закрытый ключ сертификата:
![]() |
Создание пароля закрытого ключа |
Создание нового сертификата, подписанного сертификатом корневого центра
Выполняем в командной строке:
makecert -sk SignedByTempCert -iv TempCert.pvk -n "CN=SignedByTempCert" -ic TempCert.cer SignedByTempCert.cer -sr currentuser -ss My
![]() |
Создание временного сертификата |
- -sk (subjectKey) - расположение контейнера ключей субъекта, содержащего закрытый ключ. Если контейнер ключей не существует, он будет создан. Если ни один из параметров (-sk и sv) не используется, контейнер ключей с именем JoeSoft создается по умолчанию. Проще говоря, это имя контейнера, в котором будет хранится закрытый ключ временного сертификата;
- -n (subjectName) - задает имя субъекта. Согласно правилам, к имени субъекта добавляется префикс "CN = " для "Common Name";
- -iv (issuerKeyFile) - задает файл закрытого ключа издателя. В нашем случае это TempCert.pvk (см. выше);
- -ic (issuerCertFile) - задает расположение сертификата издателя.
![]() |
Ввод пароля закрытого ключа |
Проверка сертификата в оснастке Сертификаты
Запускаем оснастку Certificates и переходим в раздел личное текущего пользователя:
![]() |
Сертификат в хранилище сертификатов |
![]() |
Созданный сертификат |
P.S. Самозаверяющий сертификат обязательно должен быть помещен в доверенные корневые сертификаты, иначе сертификат будет считаться не валидным. Для этого открываем файл TempCert.cer и устанавливаем сертификат с помощью мастера установки, или же производим установку через оснастку Сертификаты.
Комментарии
Отправить комментарий