Установка внутреннего сертификата
Цель
Когда продукт развернут в локальной сети или частной сети, сервер обычно не может через Caddy автоматически получить публичный бесплатный сертификат, например Let's Encrypt. Если при установке выбран внутренний сертификат Caddy, на клиентских устройствах нужно установить локальный корневой сертификат Caddy, чтобы браузер доверял HTTPS-сертификату системы и не показывал предупреждения вроде «небезопасно», «сертификат недействителен» или «соединение не является приватным».
Раздел подходит для сценариев:
- Доступ по внутреннему IP, внутреннему домену или домену, который не резолвится публично.
- В установочном скрипте выбран «самоподписанный сертификат Caddy» или Caddy internal certificate.
- Панель, пользовательский портал или ссылки совместного доступа открываются, но браузер сообщает о недоверенном сертификате.
Предварительные требования
- Развертывание завершено, сервисы запущены.
- Адрес доступа подтвержден, например
https://<APP_DOMAIN>/admin/loginилиhttps://<APP_DOMAIN>/app/login. - Есть возможность войти на сервер установки и прочитать каталог установки.
- Известен тип устройства, где нужно установить сертификат: Windows, macOS, Linux, iOS, Android или Firefox.
Получение корневого сертификата Caddy
На сервере установки найдите локальный корневой сертификат Caddy:
$INSTALL_PATH/data/caddy/pki/authorities/local/root.crt$INSTALL_PATH — каталог установки продукта, например /opt/sa. Проверить наличие файла можно командами:
ls -l $INSTALL_PATH/data/caddy/pki/authorities/local/root.crt
openssl x509 -in $INSTALL_PATH/data/caddy/pki/authorities/local/root.crt -noout -subject -issuer -fingerprint -sha256Передавайте пользователям только root.crt. Не передавайте закрытые ключи из того же каталога и не загружайте их в чаты, сетевые диски или почтовые вложения.
Рекомендации по распространению
Переименуйте root.crt в понятное имя, например:
Sa2web-internal-root-ca.crtПри распространении сообщите пользователям:
| Пункт | Описание |
|---|---|
| Назначение сертификата | Только для доверия HTTPS-доступу к интранет-развертыванию Sa2web |
| Применимый адрес | https://<APP_DOMAIN>/ |
| Отпечаток | SHA256-отпечаток из вывода openssl ... -fingerprint -sha256 |
| Область действия | Рабочие компьютеры, тестовые машины или мобильные устройства, которым нужен доступ |
Если в компании есть централизованная платформа управления устройствами, лучше распространять корневой сертификат через домен, MDM, систему управления устройствами или системный образ.
Установка Windows
- Сохраните
root.crtна компьютере. - Дважды щелкните файл сертификата и нажмите «Установить сертификат».
- Выберите «Локальный компьютер». Если нет прав администратора, выберите «Текущий пользователь».
- Выберите «Поместить все сертификаты в следующее хранилище».
- Нажмите «Обзор» и выберите «Доверенные корневые центры сертификации».
- Завершите импорт, затем закройте и снова откройте браузер.
- Снова откройте
https://<APP_DOMAIN>/admin/login, чтобы проверить состояние сертификата.
Также можно импортировать через PowerShell от администратора:
Import-Certificate -FilePath .\Sa2web-internal-root-ca.crt -CertStoreLocation Cert:\LocalMachine\RootУстановка macOS
- Сохраните
root.crtна компьютере. - Дважды щелкните сертификат, откроется «Связка ключей».
- Импортируйте сертификат в связку «Система».
- Найдите сертификат и откройте сведения.
- В разделе «Доверие» установите «При использовании этого сертификата» в «Всегда доверять».
- Введите системный пароль и сохраните настройки.
- Закройте и снова откройте браузер, затем перейдите по адресу системы.
Chrome, Safari и Edge обычно используют системную связку macOS. Firefox может требовать отдельного импорта, см. «Установка Firefox».
Установка Linux
Debian и Ubuntu:
sudo cp Sa2web-internal-root-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificatesRHEL, CentOS, Rocky Linux, AlmaLinux:
sudo cp Sa2web-internal-root-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trustПосле установки закройте и снова откройте браузер. Если предупреждение сохраняется, проверьте, не использует ли браузер собственное хранилище сертификатов, особенно Firefox.
Установка Firefox
В некоторых средах Firefox не полностью полагается на системное хранилище. Корневой сертификат можно импортировать напрямую:
- Откройте настройки Firefox.
- Перейдите в «Приватность и безопасность».
- В разделе «Сертификаты» нажмите «Просмотреть сертификаты».
- На вкладке «Центры сертификации» нажмите «Импортировать».
- Выберите
root.crt. - Отметьте «Доверять этому центру сертификации для идентификации сайтов».
- Подтвердите и перезапустите Firefox.
В корпоративной среде также можно включить политику корпоративных корней Firefox, чтобы он доверял хранилищу ОС.
Установка iOS и iPadOS
- Передайте
root.crtна устройство через контролируемый корпоративный канал. - Откройте файл сертификата на устройстве и установите профиль.
- Перейдите в «Настройки» > «Основные» > «VPN и управление устройством» и завершите установку профиля.
- Перейдите в «Настройки» > «Основные» > «Об этом устройстве» > «Настройки доверия сертификатов».
- Включите полное доверие для этого корневого сертификата.
- Снова откройте Safari или другой браузер и перейдите к системе.
Установка Android
Названия пунктов отличаются у производителей, типичный путь такой:
- Сохраните
root.crtна устройстве. - Откройте «Настройки» > «Безопасность» > «Шифрование и учетные данные».
- Выберите «Установить сертификат» или «Установить CA-сертификат».
- Выберите
root.crtи подтвердите установку. - Снова откройте браузер и перейдите к системе.
Некоторые версии Android или корпоративные браузеры могут не доверять вручную установленным CA. В таком случае лучше распространять сертификат через MDM или политику управления устройствами.
Проверка установки
После установки откройте:
https://<APP_DOMAIN>/
https://<APP_DOMAIN>/admin/login
https://<APP_DOMAIN>/app/loginКритерии проверки:
- В адресной строке браузера больше нет ошибки сертификата.
- В цепочке сертификатов виден локальный корневой сертификат Caddy.
- Панель администрирования и пользовательский портал позволяют войти.
- На целевом устройстве ссылки совместного доступа тоже не показывают недоверенный сертификат.
Проверка командой на клиенте:
curl -I https://<APP_DOMAIN>/Если клиентская система доверяет корневому сертификату, команда должна нормально вернуть HTTP-заголовки.
Обновление и переустановка сертификата
Повторно распространить и установить корневой сертификат нужно, если:
- Продукт переустановлен и
$INSTALL_PATH/data/caddy/pkiочищен. - Изменен каталог установки или выполнена миграция на новый сервер, из-за чего создана новая внутренняя CA Caddy.
- Локальный корневой сертификат Caddy удален или заменен вручную.
- На устройстве пользователя переустановлена ОС или очищено хранилище доверенных корней.
При обновлении продукта, если $INSTALL_PATH/data сохранен, обычно повторная установка корневого сертификата не требуется.
Частые проблемы
| Проблема | Причина | Решение |
|---|---|---|
| Браузер все еще сообщает об опасности | Сертификат не установлен в доверенное корневое хранилище | Повторно импортировать по шагам ОС и перезапустить браузер |
| Ошибка только в Firefox | Firefox использует отдельное хранилище | Импортировать сертификат отдельно в настройках Firefox |
| Мобильный браузер все еще сообщает ошибку | Мобильная ОС не полностью доверяет CA | В iOS включить полное доверие, для Android лучше использовать MDM |
| Домен не совпадает с сертификатом | Используется адрес, отличный от домена или IP, заданного при установке | Использовать настроенный домен доступа или перенастроить сертификат |
Не найден root.crt | Caddy еще не создал локальную CA или путь неверен | Проверить $INSTALL_PATH, запустить сервисы и проверить снова |
| У совместного пользователя остается ошибка | На фактическом устройстве не установлен корневой сертификат | Установить сертификат на устройство, с которого открывается ссылка |
Безопасность
- Устанавливайте только корневые сертификаты из канала, подтвержденного администратором.
- Перед установкой сверяйте SHA256-отпечаток, чтобы не установить неверный сертификат.
- Не распространяйте закрытый ключ CA Caddy.
- При увольнении, возврате или списании устройств удаляйте больше не нужные корневые сертификаты согласно политике безопасности предприятия.