Усунення несправностей SSL-сертифікатів та ServBay CA
У цьому документі описані типові проблеми та способи вирішення, пов'язані з SSL-сертифікатами та ServBay CA у локальному середовищі розробки ServBay.
Чому мій браузер попереджає про ненадійний SSL-сертифікат?
Якщо під час відкриття локального сайту, розгорнутого через ServBay, у браузері ви бачите попередження на кшталт наступних, імовірно, є проблема з налаштуванням SSL-сертифікатів:
- Chrome / Edge:
Your connection is not private
(Ваше з'єднання — не захищене)- Код помилки
NET::ERR_CERT_AUTHORITY_INVALID
- Код помилки
NET::ERR_CERT_COMMON_NAME_INVALID
(рідше, якщо сертифікат не відповідає домену)
- Firefox:
Warning: Potential Security Risk Ahead
(Попередження: можливий ризик безпеки)- Після натискання «Додатково» можна побачити код
SEC_ERROR_UNKNOWN_ISSUER
- Код помилки
SSL_ERROR_BAD_CERT_DOMAIN
(якщо сертифікат не відповідає домену)
- Safari:
This Connection Is Not Private
(Це з'єднання — не приватне)Safari can't verify the identity of the website "your-domain.test"
(Safari не може підтвердити ідентичність сайту "your-domain.test")
Основна причина цієї проблеми — це неправильна установка або відсутність довіри до ServBay User CA
чи ServBay Public CA
. Зазвичай це трапляється через:
- Корінний сертифікат ServBay не додано до списку довірених у системі.
- Ви вже використовували той самий домен (наприклад,
myapp.test
) у MAMP, Laravel Herd чи іншому локальному середовищі розробки, і сертифікати цих інструментів конфліктують із сертифікатом ServBay, або в їхній системі сертифікатів виникли проблеми, що призвело до кешування браузером неправильних сертифікатів чи довірених центрів.
Рішення
Дотримуйтесь наступних кроків:
- Запустіть ServBay
- Перейдіть у Налаштування (Settings) та знайдіть розділ ServBay Root CA.
- Натисніть Перевстановити ServBay Root CA (Reinstall ServBay Root CA). ServBay спробує автоматично виправити проблеми з установкою і довірою до кореневого сертифіката.
- Повністю закрийте та знову відкрийте ваш браузер (переконайтеся, що всі вікна і процеси браузера завершено, щоб очистити кешований SSL-стан).
- Знову відкрийте сайт. Помилка SSL має зникнути.
Якщо проблема залишилася:
Ймовірно, у системі є старі, конфліктуючі або недійсні сертифікати, особливо якщо ви раніше генерували сертифікати для того самого домену іншими інструментами (наприклад, MAMP або Herd).
- Відкрийте додаток Доступ до ключів (Keychain Access) у macOS (знайти його можна в "Програми" > "Утиліти").
- У поле пошуку справа вгорі введіть домен, з яким виникла проблема (наприклад,
myapp.test
, або ж спробуйте знайтиmamp
чиherd
, щоб знайти відповідні центри сертифікації). - У верхній панелі «Вид» оберіть Сертифікати (Certificates) для фільтрації.
- У результатах пошуку знайдіть усі SSL-сертифікати, пов’язані з вашим доменом. Особливо зверніть увагу на поля "Видавець" (Issuer): чи це
ServBay User CA
,MAMP Development CA
,Laravel Herd CA
чи інші подібні. - Виділіть всі знайдені сертифікати для проблемного домену (особливо ті, які видані не
ServBay User CA
або виглядають підозрілими), натисніть клавішуDelete
для видалення. Може знадобитися підтвердження паролем. Будьте уважні та видаляйте лише сертифікати, пов’язані з локальним доменом розробки! - Необов’язково, але рекомендується: Також перевірте наявність
ServBay User CA
іServBay Public CA
у Keychain Access — іконка не має містити червоного "x" (означає відсутність довіри). Якщо значок червоний, двічі клікніть сертифікат, розкрийте розділ "Довіра (Trust)" та встановіть "Завжди довіряти (Always Trust)". - Поверніться до додатку ServBay.
- Відкрийте Налаштування (Settings) -> ServBay Root CA.
- Натисніть Перегенерувати всі користувацькі сертифікати ServBay (Recreate All ServBay User Certificates). Це згенерує нові SSL-сертифікати для всіх сайтів, які керуються ServBay.
- Перезавантажте ваш Mac. Так ви переконаєтеся, що всі служби та компоненти системи використовують актуальні сертифікати й довірені центри.
- Знову відкрийте браузер і спробуйте перейти на ваш вебсайт.
Завдяки переліку типових помилок, користувачі можуть швидше визначити, чи пов’язана їх проблема із довірою до SSL-сертифікатів, і знайти потрібне рішення.
Що робити, якщо SSL-сертифікат було втрачено?
Іноді під час локальної розробки у ServBay файл SSL-сертифіката сайту може бути випадково видалений. Це призводить до того, що ваш вебсервер (Nginx, Caddy або Apache) не може стартувати чи нормально завантажити сайт, а у логах з'являються помилки, пов'язані з відсутністю сертифіката.
Опис проблеми
Якщо згенеровані ServBay SSL-сертифікати (.crt
та .key
) для локального сайту було видалено, у логах вебсервера можна побачити повідомлення на кшталт наступних. Вони означають, що сервер не може знайти або прочитати відповідний шлях до сертифікату.
Типові приклади помилок:
Помилка Nginx:
log
nginx: [emerg] cannot load certificate "/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt, r) error:10000080:BIO routines::no such file)
nginx: configuration file /Applications/ServBay/package/etc/nginx/nginx.conf test failed
1
2
2
Помилка Caddy:
log
Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open /Applications/ServBay/ssl/private/tls-certs/servbay.host/ser3vbay.host.crt: no such file or directory
1
Помилка Apache:
log
AH00526: Syntax error on line 15 of /Applications/ServBay/package/etc/apache/vhosts/servbay.host.conf:
SSLCertificateFile: file '/Applications/ServBay/ssl/pri3vate/tls-certs/servbay.host/servbay.host.crt' does not exist or is empty
1
2
2
Головне у цих повідомленнях – вебсервер не знаходить визначений у налаштуванні шлях до SSL-сертифіката.
Рішення
ServBay передбачає автоматичне виявлення та перевидачу втрачених SSL-сертифікатів для локальних сайтів.
Виконайте наступні кроки:
- Запустіть ServBay: Переконайтеся, що додаток ServBay активний.
- Перейдіть до списку сайтів: Ліворуч у меню ServBay натисніть Сайти.
- Обирайте проблемний сайт: Знайдіть у списку сайт із проблемою втрати SSL-сертифіката і натисніть на нього.
- Автоматичне виявлення та перевидача: При завантаженні конфігурації сайту ServBay автоматично перевірить, чи наявні потрібні файли сертифіката. Якщо
.crt
або.key
відсутні, ServBay автоматично перевипустить і розмістить новий сертифікат у відповідній директорії (/Applications/ServBay/ssl/private/tls-certs/ваш_домен/
). - Перезапустіть вебсервер: Після створення та розміщення нового сертифіката потрібно перезапустити вебсервер (Nginx, Caddy або Apache), щоб сервер підхопив нові сертифікати. Для цього відкрийте сторінку Пакети у лівому меню, знайдіть ваш пакет вебсервера і натисніть кнопку перезапуску (іконка із заокругленою стрілкою).
- Перевірте розв’язання проблеми: Після успішного перезапуску спробуйте знов через HTTPS зайти на сайт (наприклад,
https://ваш_домен
). Сайт має коректно завантажуватись, а підключення бути захищеним.
Корисні зауваження
- Це рішення стосується лише SSL-сертифікатів, автоматично створених ServBay. Якщо використовували власні, імпортовані сертифікати, після втрати їх треба самостійно поновити або імпортувати повторно — ServBay не перевидає сторонні сертифікати автоматично.
- Для підпису локальних сертифікатів ServBay використовує власний центр сертифікації ServBay User CA. Якщо браузер продовжує попереджати про недовіру до сертифіката при відкритті локального сайту через HTTPS — це означає, що ServBay User CA не є довіреним у вашій операційній системі чи браузері. Ознайомтеся з документацією ServBay по довірі до ServBay CA.
- У ServBay є функція резервного копіювання (включає дані сайту та SSL-сертифікати). Регулярно створюйте резервні копії, щоб мати змогу швидко відновити дані у разі форс-мажорів.
Часті питання (FAQ)
Q: Навіщо ServBay автоматично випускає SSL-сертифікати для локальних сайтів?
A: Мета ServBay — повноцінне локальне середовище розробки, з можливістю імітації продакшн-умов і зручного дебагінгу HTTPS-додатків. Тому ServBay через вбудований центр сертифікації автоматично випускає SSL-сертифікати для створених локальних сайтів, дозволяючи використовувати HTTPS навіть на localhost.
Q: Чи можна використовувати власний SSL-сертифікат?
A: Так, ServBay підтримує імпорт і використання власних сертифікатів (зокрема отриманих через ACME / Let's Encrypt). Проте ця інструкція стосується саме сертифікатів, автоматично згенерованих ServBay.
Q: Чи безпечно перевипускати сертифікати?
A: Так, у локальному середовищі ServBay перевипускає сертифікати, підписані внутрішнім ServBay User CA — вони використовуються лише для розробки і не впливають на захищеність вашого сайту у публічному інтернеті.
Підсумок
ServBay забезпечує зручні інструменти для керування SSL-сертифікатами у локальному оточенні розробника. Якщо автоматично створений ServBay SSL-сертифікат було видалено, усього за кілька простих кроків середовище автоматично виявить проблему, перевипустить сертифікат і допоможе відновити коректний доступ до сайту через HTTPS.