Как изменить тип сертификата Signature на Exchange, и наоборот

Обновлено 22.08.2019

ssl logoДобрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами разобрали ассоциации файлов Windows. Сегодня я вас хочу научить, производить конвертацию типов сертификатов или как угодно режимов работы, а именно с Signature (Подпись) в Exchange (Обмен) и наоборот, Exchange в Signature. Думаю, что пару раз за свою практику вы можете столкнуться с такой задачей, да и для расширения своего кругозора, это будет полезно.

Постановка задачи

В прошлый раз я выпустил на Windows центре сертификации Wildcard SSL сертификат с типом Exchange и я хотел бы его сконвертировать в Signature, как оказалось, это очень просто выполнить.

Алгоритм конвертирования типа работы сертификата

Для решения поставленной задачи мы будем использовать утилиту certutil. Certutil можно запускать из командной строки или из оболочки PowerShell. Есть два сценария конвертирования:

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

Хочу отметить, что вам при любом сценарии придетсся получить локальный pfx архив, так как именно через него можно менять тип сертификата

Открываете cmd или PowerShell, чтобы посмотреть тип вашего сертификата вы можете выполнить команды:

Для сценария если у вас сертификат хранится в локальном хранилище

certutil -store -v My | findstr "CN= Provider KeySpec"

В результате вы получите список всех ваших сертификатов, в описании которых будет поле KeySpec. В результате я вижу в моем сертификате KeySpec = 1 -- AT_KEYEXCHANGE

Посмотреть тип сертификата

Если у вас уже есть архив pfx, то перейдите в его расположение и введите команду:

certutil -v -p "12345678" -dump wildcard.pfx | findstr "CN= Name= Provider KeySpec"

  • -p "12345678" - это пароль от 1 до 8
  • -dump wildcard.pfx - имя pfx архива

Просмотр типа работы pfx архива

Предположим, что мне нужно поменять 1 -- AT_KEYEXCHANGE на 2 — SIGNATURE. Напоминаю, что у вас должен быть pfx, если его нет и у вас сертификат хранится в локальном хранилище,то сначала нужно его экспортировать. Для этого вы можете воспользоваться, как графическим интерфейсом, через mmc оснастку сертификаты, или же выполнить все с помощью certutil.

Посмотрим для начала все сертификаты, для этого выполните:

certutil -store my

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

Signature или Exchange

Перейдите в нужную вам папку через команду cd, сюда будет сохранен сертификат.Теперь зная серийный номер пишем:

certutil -exportPFX -p "12345678" my 790000fa279f2bd96421c6e2bc00010000fa27 pyatilistnik.pfx

Команда выполнена успешно и мы получили pfx.

Экспорт сертификата certutil

Теперь, чтобы изменить тип сертификата с AT_KEYEXCHANGE на 2 AT_SIGNATURE выполните:

certutil -importPFX pyatilistnik.pfx AT_SIGNATURE

Команда выполнена успешно.

Как изменить тип сертификата Signature на Exchange

Проверяем еще раз командой:

[info]certutil -store -v My | findstr "CN= Provider KeySpec"[/info]

В результате видно, что у сертификата изменился тип на KeySpec = 2 -- AT_SIGNATURE.

Signature to Exchange

На этом у меня все. Если остались вопросы или пожелания, то жду их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *