Что нового

Сертификатор

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
AutoIt: 3.3.6.1
Версия: 2.2.0.35

Категория: Файловая система, Разное

Описание:
Приложение для удобного создания сертификатов и подписи Ваших приложений ранее созданными сертификатами.

Недавно наткнулся на эту страницу Запуск скрипта с правами администратора при включенном UAC и увидев это:
Итак, для начала нужно создать сертификат, это делается утилитой makecert.exe, которая входит в состав Microsoft Windows Software Development Kit (SDK). Командная строка для создания собственного сертификата имеет следующий вид:


Код:
makecert -r -pe -n "CN=Vasya Pupkin" -b 01/01/2010 -e 01/01/2019 -eku 1.3.6.1.5.5.7.3.3 -ss Root
Вместо "Vasya Pupkin" поставьте свое имя или еще что-нибудь. После этого появится окно с предупреждением. Нажимайте Yes, и ваш сертификат будет добавлен в список проверенных. Это нужно сделать только один раз на вашем компьютере и естественно с правами администратора. Теперь вы можете добавлять этот сертификат в ваши программы. Делается это с помощью утилиты signtool.exe из того же SDK:

Код:
signtool sign /s Root /n "Vasya Pupkin" "MyProg.exe"[/quote]
Решил написать программу для удобного создания сертификатов и подписании ими своих приложений.
Файл: Сертификатор 2.2.exe (4,7 МБ)
Исходники версии 2.2: Серт.Исх.2.2.zip (616 КБ) (также, имеются в архиве после установки программы)



История версий:
1.0 (22.11.2013)
2.0 (30.05.2014)
2.1 (28.08.2014)
2.2 (05.06.2015)

Скачать Сертификатор версии 2.2: Сертификатор 2.2.exe (4,7 МБ)
• Исправлена ошибка в заголовке главного окна + отображение версии программы в заголовке главного окна
• Добавлена возможность защиты сертификата паролем (как для защиты, так и для возможности создать сертификат на win8.1)
• Исправлены мелкие недочеты версии 2.1

Скачать Сертификатор версии 2.1: Сертификатор 2.1.exe (4,6 МБ)
• С версии 2.1 имеется возможность автоматического подписывания указанных файлов с помощью командной строки файла "Sert.exe". Для получения подробной справки, запустите "Sert.exe" с параметром "/?".
Для автоматической подписи AutoIt скрипта сразу-же после его компиляции теперь достаточно указать одну строку внутри своего скрипта:
Код:
#AutoIt3Wrapper_Run_After=Sert.exe /Auto "%out%" "<Имя поставщика Вашего сертификата>" /AddTimeStamp

Например,
Код:
#AutoIt3Wrapper_Run_After=Sert.exe /Auto "%out%" "Ps10 Project" /AddTimeStamp

Если параметр /AddTimeStamp не используется, то штамп времени внутри подписи не будет проставлен!

• Увеличена скорость работы автономного установщика и компилятора установщика
• Консольная версия Сертификатора теперь всегда находится в папке программы (после установки)
• Добавлена возможность: Скопировать имя поставщика сертификата в буфер обмена
• Добавлена возможность, с помощью которой можно скрыть все вспомогательные команды в консольном окне установки/удаления сертификата в/из системы. Будет отображен только результат выполнения. В качестве примера, запустите установку сертификата с ключом "/s", а после, запустите с ключом "/sn".

Источник: autoit-script.ru, www.hackzone.ru

Возможности
• Создание сертификата
• Экспорт и импорт сертификатов из 7z и Zip архивов, а также - из папки
• Экспорт сертификата "в установщик сертификата"
• Подпись приложений Вашими сертификатами

Программа может работать в Portable режиме.
Также я выкладываю исходники (архив Sert.zip, расположенный в папке с программой и здесь). Если что-то кому-то не понравится - можете исправить или переделать, но все-равно буду ждать предложений модернизации, критики и советов :smile:

Консольная версия Сертификатора
Консольная версия Сертификатора находится во вложениях (в zip архиве) и в папке сертификатора. Она работает только при установленном в системе Сертификаторе, но ее главное отличие - это то, что Вы можете до создать свои старые сертификаты. Например, Вы когда-то создали свой сертификат и у Вас есть только 2 файла формата ".cer" и ".pvk". В этом случае, Вы сможете создать нужный программе для подписи приложений ".pfx" файл, после чего, импортировать полученные файлы в программу Сертификатор и успешно ею (программой) подписывать свои приложения.

Некоторые принципы работы программы
Для нормальной работы программы, требуется, чтобы каждый сертификат имел 2 файла (минимум) в своей папке, это файл с расширением ".pfx" и файл с расширением ".cer"! Создаваемый Сертификатором (дополнительный) файл с расширением ".dat" содержит информацию о сертификате и использует эту информацию для построения списков сертификатов. Еще эта информация используется при создании установщика сертификата.
С помощью ".pfx" файла программа подписывает приложения, а с помощью ".cer" файла можно создать автономный установщик сертификата (для чего это нужно - объясню ниже). Также, при нажатии на кнопку "Просмотр" - выполняется открытие ".cer" файла, плюс ко всему, программа ориентируется на ".cer" файл при выполнении функций поиска сертификата в своей папке, например, при том-же его просмотре, экспорте, подписывании.
В принципе, файлы с расширением ".pvk" и ".spc" можно удалить, или можно их вообще не иметь, но при создании сертификата, эти файлы не удаляются (мало-ли для чего они потом создателю сертификата могут понадобится), но для стандартного назначения программы они не нужны.

Автономный установщик сертификата в систему
Программа умеет экспортировать сертификат (а именно ".cer" файл) в консольное EXE приложение. Запустив это приложение с параметром "/s" - Вы установите сертификат в систему, а именно в хранилище доверенных корневых центров сертификации. Запустив с командой "/u" - удалите ранее установленный сертификат из хранилища.
Внимание!
Если Вы импортируете сертификат в программу, то Вам необходимо ПРАВИЛЬНО заполнить поле с именем сертификата (Поставщиком). В самом сертификате это имя указано напротив пунктов "Кому" и "Кем" выдан... Если будет указано неверное имя (при импорте сертификата), то удаление сертификата из системы с помощью консольного установщика будет невозможно!

Для чего нужен автономный установщик
Когда Вы только создадите свой сертификат, у системы не будет доверия к нему, для этого сертификат должен быть установлен в системное хранилище. На любом компьютере с Windows программа, подписанная Вашим сертификатом не будет иметь доверия (система просто будет относится к программе как к не подписанной), пока Вы не установите сертификат в ту-же систему, где и программа. Проще говоря, логичнее устанавливать свой сертификат на клиентскую систему попутно с установкой подписанной Вами программы. Автономный установщик использует только ".CER" файл!

О файле Sert.dat
Файл "Sert.dat" создается при создании или импорте сертификата с помощью программы Сертификатора и располагается в папке сертификата. Этот файл (как было описано выше) содержит информацию о сертификате. Файл имеет структуру INI файла.
Код:
[SertInfo]
1=Имя (поставщик) сертификата
2=E-Mail адрес сертификата
3=Город
7=Дата начала действия сертификата
8=Дата окончания действия сертификата
9=1|0 (используется-ли защита сертификата) (от версии 2.2)
[Rem]
1=Пароль защиты в не зашифрованном виде, при условии, что включена защита паролем и установлена галочка "Больше не спрашивать" (от версии 2.2)

Экспорт Вашего сертификата из системного хранилища
Может случится так, что у Вас есть сертификат, но Вы не можете его использовать в программе, т.к. он имеется только в системном хранилище! Как быть в этом случае - читайте за спойлером.
Для начала, создайте пустую папку с любым названием, после откройте консоль управления сертификатами. Для этого:
Нажмите "Пуск" > "Выполнить". Если у Вас нет такого пункта, то нажмите клавиши "Пуск+R" на клавиатуре.
В появившемся окне "Выполнить" вводите значение "certmgr.msc" и жмите ENTER.
В открывшейся консоле управления найдите свой сертификат, который Вы хотите экспортировать. Нажмите правой кнопкой мыши на сертификат, выберите меню "Все задачи" и пункт "Экспорт...". Выполнить экспорт сертификата придется 2 раза.
1 экспорт. При экспорте, выберите параметры:
• Да, экспортировать закрытый ключ
• Файл обмена личной информацией * (.PFX)
+ Включить усиленную защиту *
Сохраните сертификат в созданную ранее папку и назовите файл именем "Sert"
2 экспорт. При экспорте, выберите параметры:
• Нет, не экспортировать закрытый ключ
• Файлы в DER кодировке * (.CER)
Сохраните сертификат в созданную ранее папку и назовите файл именем "Sert"

Важно! Если Вы не смогли выполнить один, или оба экспорта, то способ безуспешен, можете забыть его. Все зависит от того, выбрали-ли Вы когда-то при импорте сертификата в систему параметр "Пометить этот ключ как экспортируемый *". В любом случае - можете закрыть консоль управления. Если вы оба раза успешно экспортировали сертификат, то читайте далее...

В созданной Вами ранее папке (куда вы сохраняли файлы с именем Sert) должно быть 2 файла с именем "Sert" и расширениями ".pfx" и ".cer". Если одного или всех файлов нет, то либо Вы пропустили ошибку и экспорт не успешный, либо сохранили сертификаты в другую папку.

Запустите программу Сертификатор, выберите "Импорт" > "Из папки" > "Да", укажите папку, с сертификатами, которые Вы экспортировали и нажмите ОК. На два предупреждения: "Не удалось найти один из требуемых файлов *" жмите кнопку "Да". Укажите сведения сертификата (эти сведения будут использоваться программой для построения списка сертификатов) и нажмите "Готово!".

Теперь Ваш сертификат импортирован с программу Сертификатор и Вы можете подписывать свои приложения с помощью Сертификатора.
Ранее созданную папку (куда Вы экспортировали сертификаты) по желанию можно удалить!

Приятных Вам подписей :smile:
 

Вложения

  • SertCreator_Console.zip
    2.6 КБ · Просмотры: 53

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Astel064
У меня не создается сертификат, в "дефолтном" режиме. Окно экспорта выдает ошибку ссылаясь на консоль
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
MnM сказал(а):
У меня не создается сертификат, в "дефолтном" режиме. Окно экспорта выдает ошибку ссылаясь на консоль

Я так понимаю, что нужна makecert.exe.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
бот не всегда работает - не нажимает кнопки
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
MnM [?]
У меня не создается сертификат, в "дефолтном" режиме. Окно экспорта выдает ошибку ссылаясь на консоль

А что у Вас написано в консоли?


Добавлено:
Сообщение автоматически объединено:

Yashied [?]
Я так понимаю, что нужна makecert.exe.

makecert.exe присутствует, в папке Utilities, по сути не может быть, что ее нет, если конечно антивирус не постарался, но мой NOD 32 показывает, что все ОК.



joiner [?]
бот не всегда работает - не нажимает кнопки

Это еще та проблема, на XP значения Instance отличаются от тех, которые отображает Win7, я поставил разные скрипты для XP и 7, но ошибка все-равно (видимо) осталась. На всякий случай при создании сертификата можете поставить галочку в чекбоксе Ручной режим, в этом случае в консоли написано по порядку, что нужно будет нажать для успешного экспорта сертификата в PFX файл. В теме, где всеми уважаемый Yashied рассказывает про создание сертификата все проще, но там есть 1 минус, если систему переустановить, то сертификат тоже нужно создавать заново, иначе, signtool.exe откажется подписывать приложения. Такая-же проблема при удалении сертификата из системного хранилища. Поэтому и пришлось прибегнуть к экспорту. Весь интернет общарил, но вариантов лучше чем PVKIMPRT.EXE не нашел, поэтому и пришлось заняться "ботом" (ControlClick в окне PVKIMPRT). :smile:
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
MnM
Эта ошибка возникает, если скрипт не может нажать одну из кнопок в мастере экспорта сертификатов.

Astel064 [?]
Это еще та проблема, на XP значения Instance отличаются от тех, которые отображает Win7, я поставил разные скрипты для XP и 7, но ошибка все-равно (видимо) осталась. На всякий случай при создании сертификата можете поставить галочку в чекбоксе Ручной режим, в этом случае в консоли написано по порядку, что нужно будет нажать для успешного экспорта сертификата в PFX файл.

Поставьте галочку Ручной режим и вручную экспортируйте сертификат (при этом, в консоле будет написано то, что Вам будет нужно нажать).

P.S. Возможно, что на странице защиты паролем будет отключена кнопка Далее до тех пор, пока Вы не введете пароль. В этом случае - поэкспериментируйте с функциями, которые видны на скрине :smile:
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
madmasles
Они где то в установленной папке в архиве=)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
MnM [?]
Они где то в установленной папке в архиве
Хотелось бы сначала посмотреть исходник, а потом запускать(устанавливать).
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
madmasles [?]
Хотелось бы сначала посмотреть исходник, а потом запускать(устанавливать).

В папке с программой ищите файл Sertifier.7z
Переживаете на счет вредоносного кода? Выкладываю отдельно :smile:
Только этот архив не имеет внутри файла с моими начальными "разработками" (если это так можно назвать), иначе - размер 1 МБ...
 

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Что-то не нашел функции "• Подпись приложений Вашими сертификатами"
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
:rofl:ESTROYx [?]
Что-то не нашел функции "• Подпись приложений Вашими сертификатами"

После установки сертификатора на свой компьютер, в меню файлов появляется соответствующий пункт (Сертификация)
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
gora [?]
Скачивается файл размером 56.5 кб, прошу объяснений.

Какая-то проблема с файл-обменником, перезалил на ЯДиск: http://yadi.sk/d/q6u5ZHTSRVxtW
 

gora

Знающий
Сообщения
315
Репутация
19
Astel064 [?]
После установки сертификатора на свой компьютер, в меню файлов появляется соответствующий пункт (Сертификация)
1 Не нашел такого пункта, как его увидеть? (Сделал сертификат "по умолчанию" и инсталлировал его).
2 У меня в системе есть "свой" сертификат, но программа его не видит и как его подключить пока не разобрался.
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
gora [?]
1 Не нашел такого пункта, как его увидеть? (Сделал сертификат "по умолчанию" и инсталлировал его).2 У меня в системе есть "свой" сертификат, но программа его не видит и как его подключить пока не разобрался.

Она не увидит Ваш сертификат, если он не был создан с помощью этой программы. На счет меню программы: на любом .exe файле нажимаете правой кнопкой мышки и в меню выбираете пункт "Сертификация"
 

Вложения

  • Точечный рисунок.jpg
    Точечный рисунок.jpg
    64.1 КБ · Просмотры: 26

gora

Знающий
Сообщения
315
Репутация
19
Спасибо, разобрался. Нужно было инсталлировать программу, а я ее просто распаковал.

Astel064 [?]
Она не увидит Ваш сертификат, если он не был создан с помощью этой программы.
Мне кажется, что это не правильно. Мой сертификат создан и живет на компьютере давно, создан он по статье на которую Вы ссылаетесь, я им несколько лет подписываю свои ехе, я его переношу на другой свой компьютер, так чем же он "нехорош"!? Не гибко это.
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
gora [?]
Мне кажется, что это не правильно. Мой сертификат создан и живет на компьютере давно, создан он по статье на которую Вы ссылаетесь, я им несколько лет подписываю свои ехе, я его переношу на другой свой компьютер, так чем же он "нехорош"!? Не гибко это.

Полностью с Вами согласен, можете создать сертификат, после чего найти его в папке "Сертификатор\AppData\%UserName%" и заменить файлы на свои (ранее созданные). Позже (как будет время и желание) я перепишу программу и добавлю в нее новые возможности.
 
Верх