Устранение неполадок с 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 не может подтвердить подлинность сайта «ваш-домен.test»)
Главная причина этой проблемы — некорректная установка и доверие к ServBay User CA
и ServBay Public CA
. Возможные причины:
- Корневой сертификат ServBay не был добавлен в список доверенных сертификатов macOS.
- Ранее вы использовали те же домены (например,
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
, убедиться, что они установлены и их значки не содержат красный крестик («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 автоматически для локальных сайтов, предусмотрен механизм автодетекции и автоматического перевыпуска.
Действуйте следующем образом:
- Запустите приложение ServBay: Убедитесь, что ServBay запущен.
- Перейдите к списку сайтов: В левой панели выберите Сайты.
- Выберите нужный сайт: Найдите локальный сайт, у которого возникла проблема с SSL-сертификатом, и кликните по нему.
- Автоматическая проверка и выпуск: ServBay при загрузке настроек сайта автоматически проверяет, существуют ли необходимые файлы сертификатов. Если обнаруживается их отсутствие (
.crt
или.key
), ServBay заново сгенерирует и развернёт новые сертификаты по адресу/Applications/ServBay/ssl/private/tls-certs/ваш_домен/
. - Перезапустите Web-сервер: После успешного воссоздания сертификатов необходимо перезапустить веб-сервер (Nginx, Caddy или Apache), чтобы он начал использовать новые сертификаты. В боковом меню выберите Пакеты, найдите используемый веб-сервер и у кнопки пакета нажмите иконку перезапуска (обычно выглядит как круговая стрелка).
- Проверьте решение проблемы: После перезапуска сервера попробуйте снова открыть свой локальный сайт через HTTPS (
https://ваш_домен
). Проблема должна исчезнуть и сайт откроется по защищённому соединению.
Важные замечания
- Решение применимо только к SSL-сертификатам, автоматически выданным ServBay. Если вы используете собственные, вручную импортированные SSL-сертификаты, ServBay не перевыпустит их автоматически — восстановите сертификаты вручную или импортируйте новые.
- ServBay использует встроенный центр сертификации ServBay User CA для выпуска SSL-сертификатов для локальных сайтов. Если при открытии локального сайта по HTTPS вы всё равно видите предупреждение о недоверии к сертификату, проверьте, что ServBay User CA доверен вашей системой или браузером. Следуйте инструкции по доверенности ServBay CA.
- В ServBay реализована функция резервного копирования данных, включая настройки сайтов и SSL-сертификаты. Рекомендуем регулярно создавать резервные копии для быстрой их восстановления в случае непредвиденных ситуаций.
Часто задаваемые вопросы (FAQ)
Вопрос: Зачем ServBay автоматически выпускает SSL-сертификаты для локальных сайтов?
Ответ: Цель ServBay — предоставить полноценную среду локальной разработки. Для имитации боевой среды и упрощения отладки HTTPS-приложений ServBay с помощью собственного центра сертификации выпускает SSL-сертификаты для локальных сайтов, что позволяет использовать HTTPS в локальной разработке.
Вопрос: Могу ли я использовать собственные SSL-сертификаты?
Ответ: Да. ServBay поддерживает импорт и использование собственных SSL-сертификатов, в том числе полученных через ACME / Let's Encrypt. Данный гид по устранению неполадок относится только к автоматически сгенерированным сертификатам ServBay.
Вопрос: Безопасно ли перевыпускать сертификат?
Ответ: Да. Для среды локальной разработки ServBay перевыпускает сертификаты, подписанные внутренним центром ServBay User CA и предназначенные только для локального тестирования и разработки. Это никак не влияет на безопасность вашего сайта в интернете.
Резюме
ServBay реализует удобные механизмы управления SSL-сертификатами локальной среды. Если автоматически сгенерированные сертификаты для локальных сайтов были случайно утеряны, благодаря простым действиям ServBay обнаружит и перевыпустит их автоматически, что позволяет быстро восстановить HTTPS для ваших локальных проектов.