Устранение неисправностей SSL сертификатов и ServBay CA
В этом документе описаны частые проблемы с SSL сертификатами и центром сертификации ServBay CA в локальной среде разработки ServBay, а также приведены способы устранения неисправностей.
Почему браузер предупреждает, что SSL-сертификат недоверенный?
Если при попытке открыть ваш локальный сайт, размещённый через ServBay, в браузере вы видите одно из сообщений ниже, значит возникли проблемы с настройкой SSL-сертификата:
- Chrome / Edge:
Ваше подключение не является приватным
- Код ошибки
NET::ERR_CERT_AUTHORITY_INVALID
- Код ошибки
NET::ERR_CERT_COMMON_NAME_INVALID
(реже, если имя сертификата не совпадает с доменом)
- Firefox:
Внимание: Возможна угроза безопасности
- После выбора "Дополнительно" может появиться код ошибки
SEC_ERROR_UNKNOWN_ISSUER
- Код ошибки
SSL_ERROR_BAD_CERT_DOMAIN
(если имя сертификата не совпадает с доменом)
- Safari:
Это соединение не является приватным
Safari не может подтвердить личность сайта "your-domain.test"
Чаще всего эта проблема вызвана тем, что центры сертификации ServBay User CA
и ServBay Public CA
не были корректно установлены и доверены на вашем устройстве. Возможные причины:
- Корневой сертификат ServBay не был добавлен в список доверенных сертификатов системы.
- Вы ранее использовали тот же домен (например,
myapp.test
) в других инструментах локальной разработки (MAMP, Laravel Herd и др.), что привело к конфликту сертификатов, либо сертификаты этих инструментов устарели, из-за чего браузер сохранил некорректную информацию о доверии или сертификате.
Решение
Выполните следующие шаги:
- Откройте ServBay
- Перейдите в Настройки (Settings) и найдите раздел ServBay Root CA.
- Нажмите Переустановить ServBay Root CA (Reinstall ServBay Root CA). ServBay автоматически попытается переустановить корневой сертификат и настроить доверие.
- Полностью закройте и вновь откройте браузер (убедитесь, что закрыты все окна и процессы, чтобы очистить кеш SSL).
- Снова откройте свой сайт. Ошибки, связанные с SSL-сертификатом, должны исчезнуть.
Если ошибка повторяется:
Это обычно означает наличие старых, конфликтующих или недействительных сертификатов в системе, особенно если вы генерировали сертификаты для этого же домена в других инструментах (например, MAMP или Herd).
- Откройте системный менеджер сертификатов:
- macOS: Откройте приложение Доступ к связке ключей (Keychain Access) (оно находится в "Программы" > "Утилиты").
- Windows: Нажмите Win+R, введите
certmgr.msc
, подтвердите Enter, чтобы открыть менеджер сертификатов.
- Введите в поисковую строку ваш проблемный домен (например,
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
, убедитесь, что они присутствуют и не отображаются с красным крестиком (означает "не доверенный"). Если есть красный крестик, дважды откройте сертификат, разверните "Доверие (Trust)" и задайте "Всегда доверять (Always Trust)".
- (Опционально, но рекомендуется) * Найдите в связке ключей
- Вернитесь в приложение ServBay.
- Перейдите в Настройки (Settings) → ServBay Root CA.
- Нажмите Пересоздать все пользовательские сертификаты ServBay (Recreate All ServBay User Certificates). Это сгенерирует новые SSL-сертификаты для всех управляемых ServBay сайтов.
- Перезагрузите компьютер, чтобы все службы и компоненты системы могли загрузить новые сертификаты и настройки доверия.
- Откройте браузер и попробуйте снова зайти на сайт.
Благодаря приведённым примерам типичных ошибок пользователи смогут быстрее определить, связана ли их проблема с доверием к 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 при разработке локальных сайтов, ServBay реализует удобный механизм автообнаружения и пересоздания сертификатов при их утере.
Порядок действий:
- Запустите приложение ServBay: Убедитесь, что ServBay работает.
- Перейдите к списку сайтов: В левом меню ServBay откройте раздел Сайты.
- Выберите нужный сайт: В списке найдите ваш сайт, где пропал SSL-сертификат, и кликните по нему.
- Автоматическое определение и выпуск: ServBay при загрузке конфигурации сайта автоматически проверит наличие требуемых SSL-файлов. Если сертификат исчез (
.crt
или.key
), ServBay автоматически пересоздаст его и разместит файлы по нужному пути (/Applications/ServBay/ssl/private/tls-certs/ваш_домен/
). - Перезапустите веб-сервер: После успешного пересоздания сертификата перезапустите соответствующий серверный пакет (Nginx, Caddy, Apache), чтобы сервер начал использовать новые сертификаты. Для этого перейдите на страницу Пакеты в боковом меню ServBay, найдите нужный, и нажмите кнопку перезапуска (обычно иконка со стрелкой по кругу).
- Проверьте решение проблемы: После перезапуска веб-сервера попробуйте зайти на свой локальный сайт по HTTPS (
https://ваш_домен
). Проблема должна быть устранена, сайт откроется в защищённом режиме.
Важные моменты
- Данный способ применяется только к сертификатам, автоматически выданным ServBay для локальных сайтов. Если вы вручную импортировали собственные SSL-сертификаты, то после их потери ServBay не сможет пересоздать их автоматически. В этом случае восстановите сертификаты вручную.
- Для локальных сертификатов ServBay использует встроенный центр сертификации ServBay User CA. Если при попытке открыть локальный HTTPS сайт в браузере всё равно возникает предупреждение о недоверенном сертификате, причина, скорее всего, в отсутствии доверия к ServBay User CA на вашем устройстве. Ознакомьтесь с документацией ServBay по доверию ServBay CA для корректной настройки.
- ServBay поддерживает резервное копирование данных, включая конфигурацию сайтов и SSL-сертификаты. Регулярное создание резервных копий поможет быстро восстановить данные при форс-мажорах.
Часто задаваемые вопросы (FAQ)
Вопрос: Почему ServBay автоматически выдает SSL-сертификаты для локальных сайтов?
Ответ: ServBay предназначен для создания полноценной среды локальной разработки. Для моделирования продакшн-окружения и удобства работы с безопасными приложениями ServBay с помощью центра сертификации ServBay User CA автоматически выпускает SSL-сертификаты для ваших локальных сайтов, обеспечивая доступ по HTTPS.
Вопрос: Могу ли я использовать собственный SSL-сертификат?
Ответ: Да, ServBay поддерживает импорт и использование ваших SSL-сертификатов (включая сертификаты, полученные через ACME / Let's Encrypt). Данное руководство предназначено только для сертификатов, автоматически генерируемых ServBay.
Вопрос: Безопасно ли повторно выпускать сертификаты?
Ответ: Да, для локальной среды разработки ServBay повторно генерирует сертификаты, подписанные центром ServBay User CA, только для локального использования при тестировании и разработке. Это не влияет на безопасность вашего сайта в публичной сети.
Итоги
ServBay предлагает удобный механизм управления SSL-сертификатами локальной среды. Если автоматически выданный SSL-сертификат сервиса ServBay для локального сайта был случайно утерян, воспользуйтесь простой процедурой автообнаружения и пересоздания сертификата, чтобы быстро восстановить работу вашего локального сайта через HTTPS.