Підпис об'єктного коду сертифікатом від StartSSL. По кроках - заплатив, отримав, підписав


Вітаю! Хочу поділитися своїм досвідом, як я отримав сертифікат для підпису об'єктного коду. Багато статей і постів написано про цифровий підпис, і бюджетному StartSSL. Я вирішив витративши майже $ 60, спробувати пройти по цьому шляху і поділитися з суспільством своїм досвідом.
Ставитися все нижче викладене виключно до мого особистого досвіду і відноситься до ОС Windows.

StartSSL

перший Крок — Отримання особистого сертифіката — на сайті www.startssl.com вхід в особистий кабінет по сертифікату. На головній сторінці натискаємо «Sign-up» і заповнюємо всі поля. Отримуємо іменний сертифікат і встановлюємо. Відразу зіткнувся з проблемою — коректно працює лише в Mozilla Firefox, в інших браузерах проблеми зі входом в особистий кабінет. Зробіть резервну копію сертифіката і збережіть на зовнішньому носії.
Сертифікат в браузері

Крок другий — підтвердження особи — class 2. Цей етап вимагає оплати. Фактично для отримання сертифіката це — необхідний пункт. Цитата з сайту: «Вартість перевірки фізичних осіб і організацій US $ 59.90 кожна перевірка.» На цьому етапі потрібно надати копії документів — паспорт, водійські права, якщо є, можуть попросити у процесі листування ще документи — у мене просили який-небудь документ з печаткою і моїми паспортними даними. Оплату виробляв через «PayPal» — «Tool Box» — «Add Credit Card | PayPal | Ticket» можна вибрати декілька способів оплати. Вони виставляють рахунок і чекають оплати. Після того як оплата підтверджена висилають рекомендований лист з кодом верифікації поштою. Це найдовший етап — лист йде близько місяця. Приходить на електронну скриньку повідомлення відправили поштою. Після 3 тижнів, я вже почав нервувати і написав в підтримку — у відповідь прислали номер поштового відправлення за яким можна відстежити де знаходиться лист.
Шлях листи з Росії

письмо


Крок третій — підтвердження коду з отриманого листа «Tool Box» — «Submit Verification Code»

Вводимо номер листа і код підтвердження. І якщо все правильно, то нас вітають і просять потерпіти до 6 годин.

Через деякий час отримуємо лист з вмістом:
«Congratulations! Your Class 2 Identity Validation has been confirmed and approved. You are eligible for certificates at Class 2 level until 2015-10-04.» — Бінго!!! Тепер є можливість отримати довгоочікуваний сертифікат для підпису коду!

Іменна картка ідентифікації

Четвертий крок — я заздалегідь запитав у підтримці як робити підпис — і мені прислали посилання на форум.
Спершу я почав робити все по першій інструкції, але не вдало. По порядку:

Файли які мені знадобилися:
1. OpenSSL для windows версії 0.9.8 або вище. Я використовував OpenSSL версію 1.0.1 32 бітну — повну.
2. signtool.exe — утиліта зі складу .NET Framework. Скачав окремо звідки-то з інтернету.

Встановлюємо OpenSSL — шлях за замовчуванням у мене — C:\OpenSSL-Win32\bin — у цій папці двійкові файли необхідні для створення сертифіката. Потім відкриваємо " командний рядок і переходимо в цю папку і запускаємо openssl:

req-new-newkey rsa:4096-nodes-keyout codesign_privatekey.pem-out codesign_certificate_request.csr


В процесі будуть задані питання:
1.Страна 2 букви — в нашому випадку: UK
2. Штат або провінцію — повна назва.
3. Місто.
4. Назва організації.
5. Назва підрозділу.
6. Доменне ім'я або Ім'я.
7. Адреса електронної пошти.
— інше можна не заповнювати.
Для того щоб залишити поле не заповненим можна поставити крапку замість значення.
Пароль на закритий ключ можна не ставити, вірніше його ставити не рекомендують, хоча я поставив, погано читав інструкцію, але проблем не помітив, головне не забути пароль — сертифікат видається один раз.

У поточній папці, в моєму випадку «C:\OpenSSL-Win32\bin» з'являться два нових файлу:
codesign_privatekey.pem — закритий ключ.
codesign_certificate_request.csr — файл запиту сертифіката.
Обидва цих файлу можна відкрити текстовим редактором. Нам знадобиться codesign_certificate_request.csr відкриваємо його текстовим редактором, наприклад блокнотом, і копіюємо вміст в буфер обміну <ctrl-a><ctrl-c>.
На сайті www.startssl.com заходимо в розділ «Certificates Wizard», деякі пункти стають тільки після проходження валідації і в полі «Certificate Target:» у випадаючому меню виберемо пункт «Object Code Signing Certificate» — далі відкриється вікно куди потрібно вставити раніше скопійований текст<ctrl-v>. Потім натиснути кнопку для продовження. І знову ми бачимо табличку з проханням почекати кілька годин поки буде перевірятися запит. Після перевірки приходить повідомлення на пошту з поздоровленням. І тепер можна отримати сертифікат «Tool Box» — «Retrieve Certificate» — там виберемо свій сертифікат натискаємо далі копіюємо весь текст з поля «Certificate:» — а потім зберігаємо файл текстовий документ наприклад: codesign_certificate.crt. Потім знову запускаємо OpenSSL з командного рядка.

openssl pkcs12-export-out codesign.pfx-inkey codesign_privatekey.pem-in codesign_certificate.crt

Буде потрібно ввести пароль закритого ключа, якщо Ви його встановили, введіть, потім попросить ввести пароль для експорту ключа — залиште порожнім.
Повинен створитися ще один файл codesign.pfx — яким ми будемо підписувати програми.

П'ятий крок, заключний.

Тепер ми маємо codesign.pfx у ньому міститься все, що нам необхідно для цифрового підпису файлу.

Для підпису файлу потрібно виконати таку команду.
signtool.exe sign /d "%Назва проекту%" /du "%http://ВашСайт%" /f "codesign.pfx" t "http://timestamp.verisign.com/scripts/timestamp.dll" /v "%шлях до вашого файлу%"

Природно поля потрібно заповнити у відповідності з Вашими завданнями.

У мене спочатку виникла проблема при спробі підпису файлу — виявилося утиліті signtool.exe потрібно capicom.dll після установки можливо доведеться зареєструвати цю бібліотеку в системі — запустіть командний рядок від імені Адміністратора, потім перейти в папку де знаходиться capicom.dll і виконати
regsvr32 capicom.dll 
— після цього все стало працювати і файли стали підписуватись.

Скріншоти підписаного файлу:





Для зручності я написав невелику утиліту в якій можна вказати всі дані і файли підписувати пачками.
Цей сертифікат створюється один раз, на один рік. Підпис дійсна WindowsXP SP3 і вище.

Підписати такий підписом програми можна, dll-ки, служби. Для підпису драйверів не підійде.
Потрібна чи ні цифровий підпис? Це вирішує кожен сам. Для прикладу деякі антивіруси безжально видаляють будь-яку невідому програму з флешки, що траплялося в моїй практиці, — можливо, їх поведінку змінитися коли вони побачать що в файлу є підпис.
Потрібно $60 і місяць часу — і Ви щасливий володар цифрового підпису.

Але потрібно розуміти — якщо сертифікат використовувати не в мирних цілях — то його можуть відкликати і підпис перестане бути дійсною.

Якщо будуть питання ласкаво просимо коментарі чим зможу — допоможу. Знайшли помилку — пишіть в лічку.
Сподіваюся цей пост допоможе тим хто сумнівається і не наважується на такий крок.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.