Требования к сертификатам безопасности
Назначение
Состав, формат и обязательные атрибуты SSL-сертификатов для установки Printum. Набор файлов зависит от схемы установки:
| Конфигурация | Что требуется |
|---|---|
| Сингл | Один комплект сертификатов (корневой + серверный + ключ) на весь сервер. |
| Кластер Active-Active | Отдельный сертификат и ключ на каждый сервер, корневой сертификат общий. |
| Филиальная сеть | Собственный сертификат на сервере каждого филиального ПринтМенеджера, корневой сертификат общий. |
Использование автоматических сертификатов
Мониторинг и ПринтМенеджер могут генерировать самоподписанные сертификаты при установке, если не указано использование собственных. Использование автоматических сертификатов допустимо только для конфигурации Сингл.
При их использовании веб-браузеры будут показывать предупреждение о недоверии при входе в Личный кабинет и панели администратора. Для Кластера и Филиальной сети такие сертификаты не подходят — там требуется отдельный сертификат на каждый сервер (см. ниже).
Состав сертификатов
Сингл
Нужны три файла:
| Файл | Описание |
|---|---|
ca.crt |
Корневой сертификат (CA) |
server.crt |
Сертификат сервера |
server.key |
Закрытый ключ сертификата сервера |
Если используется промежуточный CA сертификат — он тоже должен быть передан отдельным файлом.
Кластер
Отдельный сертификат и ключ для каждого сервера (HAProxy, Мониторинг, каждый ПринтМенеджер, сервер БД + NFS). Все сертификаты должны быть выпущены одним корневым удостоверяющим центром (CA).
Требования к сертификатам для кластера
Пример комплекта сертификатов для развёртывания системы в конфигурации с балансировщиком, состоящей из 6 серверов:
| Сервер | Роль |
|---|---|
| Сервер 1 | Балансировщик |
| Сервер 2 | Мониторинг |
| Сервер 3 | ПринтМенеджер №1 |
| Сервер 4 | ПринтМенеджер №2 |
| Сервер 5 | ПринтМенеджер №3 |
| Сервер 6 | База данных и NFS-хранилище |
Необходимые файлы:
- Корневой сертификат.
- Сертификат сервера и ключ — для каждого сервера отдельно (сертификат + ключ HAProxy, сертификат + ключ Сервера 1, сертификат + ключ Сервера 2 и т.д.).
Филиальная сеть
Комплект и требования к сертификатам в филиальной сети идентичны сингл конфигурации, за исключением того, что для каждого филиального ПринтМенеджера требуются собственные сертификаты с общим корневым сертификатом.
Привязка сертификата
- Установка системы по IP: сертификат выпускается на IP-адрес сервера.
- Установка системы по FQDN (хостнейму): сертификат выпускается на FQDN (доменное имя).
Должно соблюдаться соответствие между адресом сервера и адресом в выпускаемом сертификате: если система установлена по FQDN, а сертификат выпущен на IP или наоборот — возникнет ошибка Hostname mismatch.
Обязательные атрибуты
SSL-сертификат сервера должен соответствовать следующим требованиям:
- X509v3 Extended Key Usage —
TLS Web Server AuthenticationиTLS Web Client Authentication. - Алгоритм — RSA, длина ключа не менее 2048 бит.
- X509v3 Subject Alternative Name (SAN) — обязателен и должен содержать все доменные имена и/или IP-адреса, по которым будет доступен сервер.
Пример SAN для одного сервера:
DNS:server1.example.com
DNS:server1
IP:10.0.0.1
В кластере у каждого сервера — свой сертификат с собственным набором SAN (свои DNS-имена и IP); общий сертификат с одним SAN на весь кластер не используется.
Без SAN будет ошибка unable to get local issuer certificate.
Корневой сертификат (CA):
- X509v3 Key Usage:
Digital Signature,Certificate Sign,CRL Sign - X509v3 Basic Constraints:
critical
Формат
- Данные в сертификатах — в незашифрованном текстовом виде, кодировка UTF-8.
- Поддерживаемые расширения:
.cer,.crt,.pem(для сертификатов),.key(для ключа). - Корневой сертификат — отдельный файл. Нельзя включать его содержимое в
server.crt.
Типовые ошибки и их причины
| Ошибка в логах | Причина |
|---|---|
Hostname mismatch |
Адрес сервера не совпадает с CN или SAN сертификата |
ERR_CERT_COMMON_NAME_INVALID |
self signed certificate in certificate chain
Содержимое CA включено в server.crt
unable to get local issuer certificate
Отсутствует поле SAN в сертификате