Як отримати і використовувати сертифікат підпису коду ServBay
Огляд
У процесі розробки та розповсюдження програмного забезпечення підпис коду є критично важливим кроком для забезпечення довіри користувачів і цілісності продукту. За допомогою цифрового підпису розробник може засвідчити походження ПЗ і гарантувати, що його код не було змінено з моменту підписання.
ServBay пропонує зручний функціонал, який дозволяє розробникам отримувати й використовувати сертифікати підпису коду, видані власним внутрішнім CA. Такі сертифікати особливо корисні для:
- Підпису ПЗ під час локальної розробки чи тестування — для імітації реального процесу підписання.
- Підпису внутрішніх скриптів, утиліт або застосунків — для перевірки їх походження та цілісності в команді чи у довіреному середовищі.
- Вивчення й практики процедури підпису коду — без необхідності купувати дорогі комерційні сертифікати.
Важливо: Сертифікати підпису коду, видані внутрішнім CA ServBay, не є сертифікатами загальнодоступних довірених центрів сертифікації (CA), таких як Let's Encrypt чи Comodo. За замовчуванням їх не довіряють публічні операційні системи чи браузери. Тому такі сертифікати не підходять для ситуацій, що вимагають публічної довіри — наприклад, під час розповсюдження комерційного ПЗ для кінцевих користувачів, публікації у магазині застосунків чи проходження системних перевірок безпеки (як-от Gatekeeper у macOS). Вони створені в першу чергу для підпису в локальному розвитку, тестуванні або контрольованих ситуаціях.
Що таке сертифікат підпису коду
Сертифікат підпису коду — це цифровий сертифікат, що використовується для підпису виконуваних файлів, скриптів, бібліотек та іншого коду. Його основні функції полягають у:
- Підтвердженні розробника: Сертифікат містить інформацію про видавця, а сам підпис доводить, що продукт справді належить зазначеному розробнику або організації.
- Забезпеченні цілісності коду: Під час підпису створюється хеш-код із вмісту файлу, який шифрується приватним ключем. При перевірці система обчислює хеш заново і порівнює його зі значенням, розшифрованим на основі сертифіката. Будь-які несанкціоновані зміни призведуть до невідповідності і провалу перевірки.
- Підвищенні довіри користувачів: Операційні системи та системи безпеки часто видають попередження для непідписаних чи невідомих продуктів. Підпис коду допоможе уникнути подібних попереджень (у довірених середовищах чи після ручного додавання CA ServBay до довірених) і підвищить лояльність користувачів.
- Боротьбі з поширенням шкідливого ПЗ: Підпис дає змогу легко відрізнити легітимний продукт від підробки, а це допомагає запобігати розповсюдженню malware.
Як подати заявку на сертифікат підпису коду через ServBay
ServBay спрощує процедуру отримання сертифіката у локальному середовищі.
Відкрийте панель керування SSL сертифікатами: У боковому меню додатка ServBay натисніть на пункт "SSL Certificates".
Створіть новий запит сертифіката: На сторінці управління SSL сертифікатами у верхньому правому куті натисніть кнопку "+" (Додати).
Заповніть інформацію про сертифікат: На сторінці "Request Certificate" (Запит сертифіката) потрібно вказати:
- Common Name (Загальна назва): Вкажіть своє ім'я чи назву організації, наприклад:
ServBay, LLC
абоServBay Demo Developer
. - Usage Purpose (Призначення): Оберіть "Code Signing" (Підпис коду).
- Request Method (Метод запиту): Виберіть "ServBay CA" — використовується вбудоване підписання ServBay.
- Issuer (Видавець): Виберіть внутрішній CA для підпису — зазвичай "ServBay User CA".
- Algorithm (Алгоритм): Вкажіть алгоритм для створення ключів — типово ECC (еліптична криптографія) або RSA; ECC пропонує більшу безпеку з коротшим ключем.
- Key Length (Довжина ключа): Для ECC рекомендовано, наприклад, 384; для RSA — 2048 або 4096. Більший ключ надійніше, але трохи повільніше.
- Password (Пароль): Дуже важливо! Задайте надійний пароль для захисту приватного ключа. Пароль потрібен і для експорту сертифіката (
.p12
). Обов’язково збережіть цей пароль: ServBay не зможе відновити його у разі втрати. Вибирайте власний складний пароль. (Зображений у скріншотіServBay.dev
— лише приклад, НЕ використовуйте слабкі паролі у реальній роботі.)
Скріншот — приклад, заповнюйте згідно ваших даних
- Common Name (Загальна назва): Вкажіть своє ім'я чи назву організації, наприклад:
Подайте заявку: Перевірте введені дані та натисніть "Request" внизу сторінки. ServBay автоматично згенерує сертифікат із використанням вибраного CA.
Експорт та використання сертифіката
Після успішного отримання сертифіката підпису коду його необхідно експортувати у стандартному вигляді для використання в інструментах підпису. Формат експорту — як правило, .p12
.
Відкрийте панель управління SSL сертифікатами: Через меню "SSL Certificates" в додатку ServBay.
Знайдіть отриманий сертифікат: У списку знайдіть сертифікат із призначенням "Code Signing".
Запустіть дію експорту: Натисніть іконку експорту справа від сертифіката (зазвичай, стрілка вправо).
Оберіть папку та вкажіть пароль: У спливаючому вікні виберіть директорію для збереження файлу. Формат —
.p12
(PKCS#12), він містить ваш сертифікат і приватний ключ. Для експорту використовуйте пароль, який було вказано під час створення сертифіката.Використання сертифіката в інструментах підпису: Щоб скористатися
.p12
, імпортуйте його у відповідний інструмент підпису згідно з вашою ОС чи середовищем:- macOS: Використовуйте вбудований інструмент командного рядка
codesign
. Можливо, спочатку потрібно додати.p12
у "Keychain Access". - Windows: Працює через
signtool.exe
із Windows SDK. Спочатку імпортуйте.p12
у "диспетчер сертифікатів" Windows. - Інші платформи: Залежно від стеку і засобів (наприклад,
jarsigner
для Java,SignTool
для .NET, сторонні інструменти для Go тощо) знайдіть відповідну інструкцію. Зазвичай потрібно вказати шлях до.p12
і пароль.
- macOS: Використовуйте вбудований інструмент командного рядка
Після імпорту сертифіката ви можете використовувати його для підпису власного ПЗ, скриптів, драйверів тощо.
Приклад підпису коду на macOS за допомогою сертифіката
Нижче наведено приклад підпису простого виконуваного файлу у macOS інструментом codesign
і виданим через ServBay .p12
-сертифікатом.
Припускаємо, що ви імпортували файл .p12
в "Keychain Access" і вказали правильний пароль.
bash
# 1. Створіть простий C-файл для тесту підпису
# Збережіть як test.c
cat <<EOF > test.c
#include <stdio.h>
int main() {
printf("Hello, ServBay Code Signing!\n");
return 0;
}
EOF
# 2. Скомпілюйте файл у виконуваний /tmp/test
gcc test.c -o /tmp/test
echo "Компіляція успішна, створено /tmp/test"
# 3. Знайдіть доступні ідентифікатори для підпису коду (Identity)
# -v — подробиці, -p codesigning — лише сертифікати підпису коду
security find-identity -v -p codesigning
# Приклад типового результату:
# 1) ABCDEF1234567890ABCDEF1234567890ABCDEF12 "Apple Development: Your Name (XYZ123)"
# 2) 99C183BC3796067FAFBA6F232D1C3C3425DAABDA "ServBay Demo Developer"
# 2 valid identities found
# Запам'ятайте "Common Name" чи хеш відповідного сертифіката
# 4. Підпишіть виконуваний файл знайденим сертифікатом
# -f — примусово, -s — id чи Common Name, --timestamp — додати часову мітку
codesign -f -s "ServBay Demo Developer" --timestamp /tmp/test
# Або за хешем:
# codesign -f -s "99C183BC3796067FAFBA6F232D1C3C3425DAABDA" --timestamp /tmp/test
echo "/tmp/test підписано сертифікатом"
# 5. Перевірте підпис
codesign -dvvv /tmp/test
# У полі "Authority" будуть деталі вашого сервісу і ланцюга довіри ServBay
# Звертайте увагу на "Signature size", "CDHash", "Timestamp" тощо
# Приклад результату:
# Authority=ServBay Demo Developer
# Authority=ServBay User CA - ECC Code Signing
# Authority=ServBay Public CA - ECC Root
# Timestamp=Nov 7, 2024 at 18:26:48 (приклад дати)
# 6. Змініть файл і поруште підпис
echo "abcde" >> /tmp/test
echo "Вміст /tmp/test змінено"
# 7. Спробуйте знову перевірити підпис
codesign -dvvv /tmp/test
# Має з’явитися помилка, наприклад:
# /tmp/test: code object is not signed at all
# або інше повідомлення про недійсний підпис через зміну вмісту.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Пояснення:
security find-identity
виводить список ідентифікаторів, які Keychain дозволяє використовувати для підпису.codesign -f -s "Your Identity"
підписує файл;--timestamp
додає часову мітку, яка зберігає дійсність підпису навіть після закінчення терміну дії сертифіката, якщо він був дійсний на момент підпису.codesign -dvvv
перевіряє правильність підпису, валідність ланцюга довіри, зіставлення контенту за хешем тощо.- Останній крок демонструє ключову ідею: перевірка цілісності коду. Будь-яка зміна зробить підпис недійсним.
Продовження (оновлення) сертифіката
Сертифікати підпису коду від ServBay діють обмежений термін (зазвичай, 800 днів). Продовжити дію можна в панелі керування сертифікатами.
- Відкрийте панель "SSL Certificates".
- Знайдіть сертифікат, який необхідно оновити.
- Натисніть іконку оновлення: (лупа зі стрілкою).
- Підтвердіть продовження: Натисніть кнопку продовження, після чого буде видано новий сертифікат із терміном дії 800 днів від поточної дати.
Видалення сертифіката
Якщо сертифікат більше не потрібен, його можна видалити із системи ServBay.
- Відкрийте панель "SSL Certificates".
- Знайдіть потрібний сертифікат.
- Натисніть іконку видалення: (зазвичай, іконка смітника).
- Підтвердіть видалення: У діалоговому вікні виберіть "Delete" та ще раз підтвердіть рішення. Увага! Після цього відновити сертифікат неможливо.
Поширені запитання (FAQ)
Q: Сертифікати підпису коду від ServBay безкоштовні?
A: Так, видані внутрішнім CA сертифікати є частиною функціоналу ServBay та не потребують додаткової оплати.
Q: Чи можу я використовувати такий сертифікат для підпису й розповсюдження комерційного програмного забезпечення?
A: Ні. Сертифікати ServBay підписані внутрішнім, недовіреним CA. В операційних системах та магазинах ПЗ вони не будуть автоматично довірені. Для комерційного розповсюдження потрібно використовувати сертифікати від загальнодоступних CA.
Q: Я забув пароль до .p12
при експорті. Що робити?
A: ServBay не зберігає ваших паролів. Відновити доступ до приватного ключа неможливо. Видаліть сертифікат і подайте нову заявку для створення нового сертифіката.
Q: Чи можу я додати ServBay User CA в довірені сертифікати ОС?
A: Так, достатньо експортувати сертифікат ServBay User CA й вручну додати його до сховища довірених системи або браузера.
Висновок
Сервіс підпису коду від ServBay робить процес тестування підпису ПЗ у локальному середовищі простим і зручним. Користуючись цим посібником, ви зможете швидко оформити заявку, експортувати та інтегрувати сертифікати для підпису ваших проектів у процесі розробки чи внутрішніх робіт. Пам’ятайте: такі сертифікати не призначені для комерційного чи публічного поширення.
Якщо у вас виникнуть додаткові питання щодо оформлення чи застосування, звертайтеся до офіційної документації ServBay чи на спільноту користувачів.