Skip to content

Установка внутреннего сертификата

Цель

Когда продукт развернут в локальной сети или частной сети, сервер обычно не может через 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:

text
$INSTALL_PATH/data/caddy/pki/authorities/local/root.crt

$INSTALL_PATH — каталог установки продукта, например /opt/sa. Проверить наличие файла можно командами:

bash
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 в понятное имя, например:

text
Sa2web-internal-root-ca.crt

При распространении сообщите пользователям:

ПунктОписание
Назначение сертификатаТолько для доверия HTTPS-доступу к интранет-развертыванию Sa2web
Применимый адресhttps://<APP_DOMAIN>/
ОтпечатокSHA256-отпечаток из вывода openssl ... -fingerprint -sha256
Область действияРабочие компьютеры, тестовые машины или мобильные устройства, которым нужен доступ

Если в компании есть централизованная платформа управления устройствами, лучше распространять корневой сертификат через домен, MDM, систему управления устройствами или системный образ.

Установка Windows

  1. Сохраните root.crt на компьютере.
  2. Дважды щелкните файл сертификата и нажмите «Установить сертификат».
  3. Выберите «Локальный компьютер». Если нет прав администратора, выберите «Текущий пользователь».
  4. Выберите «Поместить все сертификаты в следующее хранилище».
  5. Нажмите «Обзор» и выберите «Доверенные корневые центры сертификации».
  6. Завершите импорт, затем закройте и снова откройте браузер.
  7. Снова откройте https://<APP_DOMAIN>/admin/login, чтобы проверить состояние сертификата.

Также можно импортировать через PowerShell от администратора:

powershell
Import-Certificate -FilePath .\Sa2web-internal-root-ca.crt -CertStoreLocation Cert:\LocalMachine\Root

Установка macOS

  1. Сохраните root.crt на компьютере.
  2. Дважды щелкните сертификат, откроется «Связка ключей».
  3. Импортируйте сертификат в связку «Система».
  4. Найдите сертификат и откройте сведения.
  5. В разделе «Доверие» установите «При использовании этого сертификата» в «Всегда доверять».
  6. Введите системный пароль и сохраните настройки.
  7. Закройте и снова откройте браузер, затем перейдите по адресу системы.

Chrome, Safari и Edge обычно используют системную связку macOS. Firefox может требовать отдельного импорта, см. «Установка Firefox».

Установка Linux

Debian и Ubuntu:

bash
sudo cp Sa2web-internal-root-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

RHEL, CentOS, Rocky Linux, AlmaLinux:

bash
sudo cp Sa2web-internal-root-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust

После установки закройте и снова откройте браузер. Если предупреждение сохраняется, проверьте, не использует ли браузер собственное хранилище сертификатов, особенно Firefox.

Установка Firefox

В некоторых средах Firefox не полностью полагается на системное хранилище. Корневой сертификат можно импортировать напрямую:

  1. Откройте настройки Firefox.
  2. Перейдите в «Приватность и безопасность».
  3. В разделе «Сертификаты» нажмите «Просмотреть сертификаты».
  4. На вкладке «Центры сертификации» нажмите «Импортировать».
  5. Выберите root.crt.
  6. Отметьте «Доверять этому центру сертификации для идентификации сайтов».
  7. Подтвердите и перезапустите Firefox.

В корпоративной среде также можно включить политику корпоративных корней Firefox, чтобы он доверял хранилищу ОС.

Установка iOS и iPadOS

  1. Передайте root.crt на устройство через контролируемый корпоративный канал.
  2. Откройте файл сертификата на устройстве и установите профиль.
  3. Перейдите в «Настройки» > «Основные» > «VPN и управление устройством» и завершите установку профиля.
  4. Перейдите в «Настройки» > «Основные» > «Об этом устройстве» > «Настройки доверия сертификатов».
  5. Включите полное доверие для этого корневого сертификата.
  6. Снова откройте Safari или другой браузер и перейдите к системе.

Установка Android

Названия пунктов отличаются у производителей, типичный путь такой:

  1. Сохраните root.crt на устройстве.
  2. Откройте «Настройки» > «Безопасность» > «Шифрование и учетные данные».
  3. Выберите «Установить сертификат» или «Установить CA-сертификат».
  4. Выберите root.crt и подтвердите установку.
  5. Снова откройте браузер и перейдите к системе.

Некоторые версии Android или корпоративные браузеры могут не доверять вручную установленным CA. В таком случае лучше распространять сертификат через MDM или политику управления устройствами.

Проверка установки

После установки откройте:

text
https://<APP_DOMAIN>/
https://<APP_DOMAIN>/admin/login
https://<APP_DOMAIN>/app/login

Критерии проверки:

  • В адресной строке браузера больше нет ошибки сертификата.
  • В цепочке сертификатов виден локальный корневой сертификат Caddy.
  • Панель администрирования и пользовательский портал позволяют войти.
  • На целевом устройстве ссылки совместного доступа тоже не показывают недоверенный сертификат.

Проверка командой на клиенте:

bash
curl -I https://<APP_DOMAIN>/

Если клиентская система доверяет корневому сертификату, команда должна нормально вернуть HTTP-заголовки.

Обновление и переустановка сертификата

Повторно распространить и установить корневой сертификат нужно, если:

  • Продукт переустановлен и $INSTALL_PATH/data/caddy/pki очищен.
  • Изменен каталог установки или выполнена миграция на новый сервер, из-за чего создана новая внутренняя CA Caddy.
  • Локальный корневой сертификат Caddy удален или заменен вручную.
  • На устройстве пользователя переустановлена ОС или очищено хранилище доверенных корней.

При обновлении продукта, если $INSTALL_PATH/data сохранен, обычно повторная установка корневого сертификата не требуется.

Частые проблемы

ПроблемаПричинаРешение
Браузер все еще сообщает об опасностиСертификат не установлен в доверенное корневое хранилищеПовторно импортировать по шагам ОС и перезапустить браузер
Ошибка только в FirefoxFirefox использует отдельное хранилищеИмпортировать сертификат отдельно в настройках Firefox
Мобильный браузер все еще сообщает ошибкуМобильная ОС не полностью доверяет CAВ iOS включить полное доверие, для Android лучше использовать MDM
Домен не совпадает с сертификатомИспользуется адрес, отличный от домена или IP, заданного при установкеИспользовать настроенный домен доступа или перенастроить сертификат
Не найден root.crtCaddy еще не создал локальную CA или путь неверенПроверить $INSTALL_PATH, запустить сервисы и проверить снова
У совместного пользователя остается ошибкаНа фактическом устройстве не установлен корневой сертификатУстановить сертификат на устройство, с которого открывается ссылка

Безопасность

  • Устанавливайте только корневые сертификаты из канала, подтвержденного администратором.
  • Перед установкой сверяйте SHA256-отпечаток, чтобы не установить неверный сертификат.
  • Не распространяйте закрытый ключ CA Caddy.
  • При увольнении, возврате или списании устройств удаляйте больше не нужные корневые сертификаты согласно политике безопасности предприятия.

Sa2web 1.0.0