Використання SSL-сертифікату, отриманого у стороннього сертифікаційного центру, у ServBay
Під час локальної розробки чи тестування в умовах, максимально наближених до бойового середовища, використання SSL-сертифікату, виданого довіреним стороннім сертифікаційним центром (CA), дозволяє забезпечити безпечний доступ до сайту через HTTPS. Це критично важливо для тестування функцій, які залежать від HTTPS, або для того, щоб локальне середовище відповідало налаштуванням продуктивного серверу. У цій статті докладно розглянуто, як налаштувати SSL-сертифікат від стороннього CA у локальному середовищі розробки ServBay.
WARNING
Зверніть увагу: SSL-сертифікати, видані сторонніми CA, зазвичай підтримують лише стандартні доменні зони (наприклад, .com
, .org
, .net
, .ua
тощо) і не підтримують індивідуальні нетипові суфікси (наприклад, .local
, .test
, .demo
). Це пов'язано з тим, що такі домени не підлягають публічній верифікації. Якщо ви використовуєте нестандартні доменні імена для локальної розробки, рекомендуємо скористатися вбудованими функціями ServBay User CA або ServBay Public CA для згенерування довірених локальних SSL-сертифікатів.
Сфери застосування
- Імітація продакшн середовища: Точне відтворення HTTPS-налаштувань бойового серверу для тестування роботи сайту через HTTPS.
- Тестування функцій, що залежать від HTTPS: Перевірка браузерних API та можливостей, які працюють лише у безпечному контексті (Secure Context), таких як Service Workers, Web Crypto API, Geolocation тощо.
- Локальна розробка API: Налаштування HTTPS для бекенд-API, що працюють локально, аби фронтенд мав змогу підключатися через HTTPS.
Передумови
Перед початком переконайтесь, що ви маєте наступне:
- Встановлений і запущений ServBay на macOS.
- Базове розуміння роботи з терміналом і командним рядком.
- Наявність інструменту OpenSSL у системі (у macOS зазвичай вже встановлений).
Крок 1: Подання заявки на сторонній SSL-сертифікат
Насамперед потрібно отримати SSL-сертифікат у авторитетного стороннього CA (наприклад Let's Encrypt, DigiCert, GlobalSign, Sectigo тощо). Далі описано, як згенерувати запит на підпис сертифікату (CSR) — це необхідна умова для отримання сертифікату.
Генерація приватного ключа (Private Key)
Приватний ключ — це критично важливий файл, який використовується вашим сервером для розшифровки HTTPS-трафіку. Його необхідно зберігати в безпеці та не розголошувати. Для створення RSA-приватного ключа виконайте у терміналі таку команду OpenSSL:
shopenssl genpkey -algorithm RSA -out servbay.demo.key -pkeyopt rsa_keygen_bits:2048
1openssl genpkey
: команда для генерації приватного ключа.-algorithm RSA
: вказує використання алгоритму RSA.-out servbay.demo.key
: ім'я файлу результату (наприклад,servbay.demo.key
).-pkeyopt rsa_keygen_bits:2048
: довжина RSA-ключа 2048 біт. Рекомендований мінімум для сучасних цілей безпеки.
Створення CSR (Certificate Signing Request)
CSR — це файл, який містить ваш публічний ключ та інформацію, потрібну для видачі сертифікату. Він подається сертифікаційному центру. Для створення CSR на основі вашого приватного ключа скористайтесь:
shopenssl req -new -key servbay.demo.key -out servbay.demo.csr
1openssl req
: команда для роботи із сертифікатними запитами.-new
: створити новий CSR.-key servbay.demo.key
: вказати файл приватного ключа.-out servbay.demo.csr
: файл, куди буде записано ваш CSR.
Після виконання команди вам запропонують ввести ряд полів для заповнення CSR. Заповнюйте їх згідно з вашою інформацією або вимогами обраного CA. Наприклад:
Country Name (2 letter code) [AU]:UA # Код країни, наприклад UA (Україна), US (США) State or Province Name (full name) [Some-State]:Kyiv # Назва регіону або області Locality Name (eg, city) []:Kyiv # Місто Organization Name (eg, company) [Internet Widgits Pty Ltd]:ServBay # Організація або компанія Organizational Unit Name (eg, section) []:Development # Підрозділ (необов'язково) Common Name (e.g. server FQDN or YOUR name) []:servbay.demo # **Важливо: тут вкажіть повне доменне ім'я (FQDN) для сертифікату** Email Address []:[email protected] # Контактний email (опціонально) Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: # Пароль (зазвичай залиште порожнім) An optional company name []: # Додаткове ім'я компанії (зазвичай залиште порожнім)
1
2
3
4
5
6
7
8
9
10
11
12Обов'язково у полі
Common Name
вкажіть домен, який плануєте використовувати в ServBay, наприкладservbay.demo
. Якщо вам потрібен сертифікат для декількох доменів (SAN-сертифікат), процес створення CSR лишається подібним, але у більшості CA буде можливість додати інші домени окремими опціями або через онлайн-інструменти для створення CSR із SAN.Передача CSR і отримання сертифіката
Візьміть файл
servbay.demo.csr
і завантажте його або вставте в спеціальну форму на сайті обраного CA. Далі слідуйте інструкціям з підтвердження права власності на домен (через DNS-запис, HTTP-файл або email). Після верифікації ви отримаєте:- Головний файл сертифіката (наприклад,
servbay.demo.crt
чиservbay.demo.pem
). - Один або кілька проміжних сертифікатів (для побудови ланцюжка довіри, напр.,
intermediate.crt
,ca-bundle.crt
). - Кореневий сертифікат (зазвичай не потрібно встановлювати окремо, ОС/браузер уже довіряє йому).
- Головний файл сертифіката (наприклад,
Крок 2: Налаштування стороннього SSL-сертифікату у ServBay
Після отримання сертифікату від CA, потрібно імпортувати та налаштувати його у ServBay для роботи HTTPS.
Для зручності управління рекомендується зберігати всі створені сертифікати та приватні ключі у каталозі /Applications/ServBay/ssl/import/tls-certs/
.
Перемістіть сертифікати та ключі у відповідну папку
Скопіюйте приватний ключ (
servbay.demo.key
), основний сертифікат (servbay.demo.crt
) та усі проміжні сертифікати (наприклад,intermediate.crt
) до директорії імпорту ServBay:shmv servbay.demo.key /Applications/ServBay/ssl/import/tls-certs/ mv servbay.demo.crt /Applications/ServBay/ssl/import/tls-certs/ # Якщо є проміжне сертифіката, також копіюйте його mv intermediate.crt /Applications/ServBay/ssl/import/tls-certs/ # Якщо є інші проміжні сертифікати, теж копіюйте їх # mv another_intermediate.crt /Applications/ServBay/ssl/import/tls-certs/
1
2
3
4
5
6Об'єднайте проміжні сертифікати в основний файл сертифікату
Щоб браузери могли правильно перевірити увесь ланцюг довіри, додайте вміст усіх проміжних сертифікатів у кінець вашого основного сертифіката. Порядок — спочатку основний сертифікат, потім усі проміжні (root CA зазвичай не потрібен у файлі, бо ОС і браузери вже мають їх у CА-хранилищі). CA має вказати правильний порядок, у якому потрібно додавати проміжні сертифікати:
Наприклад, якщо проміжний сертифікат —
intermediate.crt
:shcat intermediate.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt
1Якщо декілька (наприклад, спочатку
intermediate1.crt
, тодіintermediate2.crt
):shcat intermediate1.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt cat intermediate2.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt
1
2Після об'єднання файл
servbay.demo.crt
міститиме весь ланцюжок сертифікатів.Відкрийте панель керування ServBay
Запустіть додаток ServBay та знайдіть іконку у верхньому меню macOS чи на Dock. Натисніть на неї для відкриття панелі керування.
Додайте або відредагуйте сайт
У лівому меню виберіть розділ
Сайти
.- Щоб створити новий сайт — натисніть кнопку
+
у верхньому правому куті. - Щоб редагувати існуючий сайт, оберіть його зі списку та натисніть іконку редагування (олівець).
- Щоб створити новий сайт — натисніть кнопку
Налаштуйте SSL-сертифікат
У налаштуваннях сайту перейдіть до розділу SSL. Серед способів видачі сертифіката оберіть
Custom
(Користувацький).- Файл ключа сертифіката (Certificate Key File): оберіть ваш приватний ключ у
/Applications/ServBay/ssl/import/tls-certs/
, наприкладservbay.demo.key
. - Файл сертифіката (Certificate File): оберіть файл із повним ланцюжком (об'єднаний основний з проміжними сертифікатами), наприклад
servbay.demo.crt
.
(Примітка: шлях до зображення наведений як приклад, у документації ServBay він може відрізнятися)
- Файл ключа сертифіката (Certificate Key File): оберіть ваш приватний ключ у
Додайте домен і кореневу директорію
Переконайтеся, що у полі
Domain
вказано саме той домен, на який оформлено сертифікат (наприклад,servbay.demo
). Не забудьте налаштуйте кореневу директорію сайту (Document Root
), наприклад/Applications/ServBay/www/servbay.demo
.Збережіть і застосуйте налаштування
Після завершення всіх налаштувань натисніть кнопку збереження. ServBay запропонує застосувати зміни та перезапустити відповідний веб-сервер (Caddy, Nginx, Apache). Підтвердіть виконання змін.
Перевірка конфігурації
Після налаштування відкрийте браузер і перейдіть до вашого сайту (наприклад, https://servbay.demo
). Якщо усе правильно налаштовано, в адресному рядку має з'явитися значок замка. Клікніть на нього, щоб побачити деталі сертифікату й пересвідчитись, що використовується ваш сторонній сертифікат з повним ланцюжком CA.
У разі виникнення проблем перевірте:
- Чи збігається домен з "Common Name" чи SAN сертифікату.
- Чи правильно вказані шляхи до файлів сертифікату і ключа.
- Чи файл сертифіката містить повний ланцюжок проміжних CA та у правильному порядку.
- Чи конфігурація сайту у ServBay збережена та застосована.
- Чи ваш комп’ютер довіряє кореневому CA (зазвичай основні CA вже є у сховищі довіри ОС і браузеру).
Додаткові зауваження
- Відповідність домену: Сертифікат повинен точно збігатися із доменом, що налаштований у ServBay (включно з піддоменами, якщо сертифікат wildcard).
- Строк дії сертифіката: Сторонні сертифікати мають строк дії. Поки не сплив, регулярно оновлюйте сертифікат і замінюйте його файли у ServBay.
- Безпека приватного ключа: Захищайте файл приватного ключа (
.key
), він критично важливий. - Інші опції SSL у ServBay: ServBay підтримує додаткові зручні способи налаштування SSL, наприклад:
- ServBay User CA / Public CA: створення довірених сертифікатів для локальної розробки на будь-які доменні зони.
- ACME (Let's Encrypt): для стандартних доменів можна автоматично генерувати та оновлювати сертифікати Let's Encrypt через вбудований клієнт ServBay. Описана у статті ручна імпортна схема стане у пригоді, якщо сертифікат отримано через інші канали чи при міграції наявних сертифікатів.
Часті питання (FAQ)
Q1: Я отримав файл сертифіката у форматі .pfx
або .p12
. Як його використати у ServBay?
A1: Файли .pfx
або .p12
зазвичай містять у собі і приватний ключ, і усі необхідні сертифікати. Для ServBay їх потрібно експортувати окремо (приватний ключ .key
та сертифікат .crt
). Наприклад:
sh
openssl pkcs12 -in your_certificate.pfx -nocerts -out your_private_key.key -nodes
openssl pkcs12 -in your_certificate.pfx -clcerts -nokeys -out your_certificate.crt
1
2
2
Після експорту, можливо, доведеться окремо отримати проміжні сертифікати у вашого CA і за інструкціями об'єднати їх із основним у .crt
.
Q2: Я виконав усі налаштування, але браузер все одно показує попередження про “Небезпечне з'єднання”?
A2: Перевірте:
- Відповідність домену: Чи збігається домен, з якого заходите, із доменом у сертифікаті?
- Повнота ланцюжка: Чи включені всі проміжні сертифікати у файл
.crt
, і чи правильний покроковий порядок? Скористайтеся онлайн-інструментами для перевірки SSL-ланцюжка. - Перезапуск серверу: Чи застосовано зміни і сервер було перезапущено у ServBay?
- Кеш браузера: Спробуйте почистити кеш/зайти у приватному режимі.
- Довіра системи: Чи є кореневий CA у списку довірених в ОС?
Підсумок
Дотримуючись інструкції, ви зможете успішно налаштувати у локальному середовищі ServBay SSL-сертифікат, виданий сторонньою організацією. Це дозволить максимально точно імітувати HTTPS-продуктивне середовище, а отже — ефективніше розробляти та тестувати проєкт локально. Хоча ServBay має ще зручніші способи інтеграції SSL (ACME, власні ServBay CA), володіння навичкою ручного імпорту важливо при роботі зі специфічними сертифікатами чи для міграції готових рішень.