Использование SSL-сертификата сторонней организации в ServBay
При локальной разработке или тестировании с эмуляцией продакшн-среды, применение SSL-сертификата, выданного доверенным центром сертификации (CA), позволяет вашему сайту безопасно работать по HTTPS. Это критически важно для проверки функционала, зависимого от HTTPS, а также для максимального приближения локальной среды к продакшн. В этой статье подробно описано, как настроить SSL-сертификат от сторонней CA в локальной среде разработки ServBay.
WARNING
Обратите внимание, что SSL-сертификаты, выданные сторонними CA, как правило, поддерживают только стандартные доменные зоны (например, .com
, .org
, .net
, .cn
и т.д.) и не поддерживают нестандартные, вроде .local
, .test
, .demo
, поскольку такие домены нельзя подтвердить публично. Если ваш локальный домен использует нестандартный суффикс, рекомендуется воспользоваться встроенными возможностями ServBay User CA или ServBay Public CA для генерации доверенного локального сертификата.
Сценарии применения
- Эмуляция продакшн-среды: Точная симуляция HTTPS‑конфигурации рабочей среды для тестирования поведения сайта через HTTPS.
- Тестирование функционала, требующего HTTPS: Проверка API браузера или функций, которым нужен защищённый контекст (Secure Context), например Service Workers, Web Crypto API, геолокация и пр.
- Локальная разработка API: Настройка HTTPS для локально работающего backend API для удобства вызова с фронтенда через защищённый протокол.
Предварительные требования
Перед началом убедитесь, что выполнены следующие условия:
- На macOS установлен и запущен ServBay.
- Есть базовые знания работы с терминалом и командной строкой.
- В системе установлен OpenSSL (обычно уже есть в macOS).
Шаг 1: Получение стороннего SSL-сертификата
Сначала получите сертификат у доверенного CA (например, Let's Encrypt, DigiCert, GlobalSign, Sectigo и др.). Ключевым этапом этого процесса будет создание запроса на подпись сертификата (CSR).
Генерация приватного ключа (Private Key)
Приватный ключ — это критически важный файл, c помощью которого сервер расшифровывает SSL‑трафик. Его следует держать в безопасности и не передавать третьим лицам. Выполните команду в терминале для создания RSA‑ключа:
shopenssl genpkey -algorithm RSA -out servbay.demo.key -pkeyopt rsa_keygen_bits:2048
1openssl genpkey
: Команда OpenSSL для создания приватного ключа.-algorithm RSA
: Указывает тип ключа — RSA.-out servbay.demo.key
: Имя выходного файла для приватного ключа.-pkeyopt rsa_keygen_bits:2048
: Длина ключа 2048 бит — минимально рекомендуемая для большинства случаев.
Формирование запроса на подпись сертификата (CSR)
CSR — файл, включающий ваш публичный ключ и основные сведения о сертификате. Его нужно передать CA. Для создания 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 — заполняйте в соответствии с требованиями CA или вашей организацией. Пример ввода:
Country Name (2 letter code) [AU]:CN # Код страны, например CN (Китай), US (США) State or Province Name (full name) [Some-State]:Hong Kong # Регион/штат Locality Name (eg, city) []:Kowloon # Город 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‑сертификат), процесс может включать дополнительные шаги, указанные CA (например, онлайн‑форма для генерации CSR с SAN).Отправка CSR и получение сертификата
Скопируйте или загрузите полученный файл
servbay.demo.csr
на сайт выбранного CA, затем выполните требования по валидации домена (чаще всего через запись DNS, HTTP‑файл или электронную почту). После успешной проверки вы получите один или несколько файлов:- Основной сертификат (например,
servbay.demo.crt
илиservbay.demo.pem
); - Один или несколько промежуточных сертификатов (сертификатная цепочка —
intermediate.crt
,ca-bundle.crt
); - Корневой сертификат (root), который обычно не требуется добавлять вручную (есть в системах по умолчанию).
- Основной сертификат (например,
Шаг 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Объединение промежуточных сертификатов с основным сертификатом
Чтобы браузер правильно проверял цепочку доверия, добавьте содержимое всех промежуточных сертификатов в конец основного. Правильный порядок важен: сначала основной, затем промежуточные, последний — корневой (обычно можно опустить, так как он в системе). 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; найдите иконку в 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) сертификата.
- Правильны ли пути к приватному ключу и сертификатам.
- Полностью ли включены промежуточные сертификаты в итоговом
.crt
и их порядок. - Сохранены ли и применены изменения сайта в ServBay.
- Доверяет ли ваша система корневому CA (обычно сторонние CA уже доверены ОС и браузерами).
Важные моменты
- Совпадение домена: Сертификат должен точно соответствовать домену, настроенному в ServBay (учитывайте поддомены при использовании wildcard).
- Срок действия сертификата: Сертификаты третьих сторон имеют ограниченный срок работы. Следите за сроком, заранее обновляйте и повторно импортируйте их в ServBay по аналогичной схеме.
- Безопасность приватного ключа: Приватный ключ (
.key
) — строго конфиденциальный файл, обеспечьте его безопасность. - Альтернативные SSL-опции ServBay: Дополнительно доступны удобные способы подключения SSL, такие как:
- ServBay User CA / Public CA: генерация доверенных сертификатов локально, для любых доменных суффиксов;
- ACME (Let's Encrypt): для стандартных доменов ServBay интегрируется с ACME‑клиентом для автогенерации и продления сертификатов. Описанный в статье способ подходит для случаев, когда у вас уже есть сторонний сертификат и требуется ручной импорт.
Часто задаваемые вопросы (FAQ)
Q1: Получен сертификат в формате .pfx
или .p12
. Как использовать его в ServBay?
A1: Такие файлы содержат ключ и сертификаты в одном контейнере. Необходимо извлечь приватный ключ (.key
) и сам сертификат (.crt
). Например:
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
2
После экспорта, возможно, потребуется дополнительно получить промежуточную цепочку сертификатов (CA обычно предоставляет её) и добавить к .crt
согласно разделу выше.
Q2: Все настроено по инструкции, но браузер всё равно выдаёт предупреждение "Небезопасное соединение"?
A2: Проверьте следующее:
- Совпадение доменов: Соответствует ли домен в строке браузера сертификату.
- Цепочка сертификатов: Включены ли все промежуточные сертификаты в итоговый
.crt
и правильный ли их порядок? Можно использовать онлайн‑инструменты для проверки SSL-цепочки. - Перезапуск ServBay: Убедитесь, что после изменений была применена и перезапущена служба веб-сервера.
- Кэш браузера: Очистите кэш или попробуйте открыть сайт в режиме Инкогнито.
- Доверие системе: Корневой CA должен быть доверен вашей ОС.
Заключение
Следуя этому руководству, вы сможете успешно подключить сторонний SSL-сертификат в локальной среде разработки ServBay. Это позволит точнее воспроизвести продакшн-настройки HTTPS и эффективнее тестировать проекты локально. Хотя ServBay предлагает ряд более удобных средств (ACME, собственные CA), умение импортировать сторонние SSL-сертификаты вручную полезно для сложных задач или при необходимости переноса существующих сертификатов.