Skip to main content

Требования к SSL-сертификатам для Printum


title: Требования к SSL-сертификатам для Printum slug: trebovaniya-k-ssl-sertifikatam tags: [ssl, сертификат, tls, SAN, требования, установка] domain: Security type: Reference audience: partner-engineer product_versions: "4.x" status: ready related_components: [Мониторинг, ПринтМенеджер, Балансировщик] related_pages:

  • kak-obnovit-printum
  • ts-ssl-hostname-mismatch
  • ts-ssl-self-signed-in-chain
  • ts-ssl-unable-to-get-local-issuer

Требования к сертификатам безопасности

Когда использовать

Перед выпуском собственных сертификатов для установки или обновления Printum.


Состав сертификатов

Для базовой (сингл) схемы нужны три файла:

Файл Описание
ca.crt Корневой сертификат (CA)
server.crt Сертификат сервера
server.key Закрытый ключ сертификата сервера

Если используется промежуточный CA — он тоже должен быть передан отдельным файлом.

Для схемы с балансировщиком — отдельный сертификат и ключ для каждого сервера (HAProxy, Мониторинг, каждый ПринтМенеджер, сервер БД+NFS).


Привязка сертификата

  • Установка по системы IP: сертификат выпускается на IP-адрес сервера.
  • Установка по системы FQDN: сертификат выпускается на FQDN (доменному имени).

Должно соблюдаться соответствие между адресом сервера и адресом в выпускаемом сертификате: если система установлена по FQDN, а сертификат выпущен на IP или наоборот — возникнет ошибка Hostname mismatch.


Обязательные атрибуты

SSL-сертификат сервера:

  • X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication
  • X509v3 Subject Alternative Name (SAN) — обязателен. Должен содержать все адреса сервера:
DNS:server1.example.com
DNS:server1
IP:10.0.0.1

Без SAN будет ошибка unable to get local issuer certificate.

Корневой сертификат (CA):

  • X509v3 Key Usage: Digital Signature, Certificate Sign

Формат

  • Данные в сертификатах — в незашифрованном текстовом виде, кодировка UTF-8.
  • Поддерживаемые расширения: .cer, .crt, .pem (для сертификатов), .key (для ключа).
  • Корневой сертификат — отдельный файл. Нельзя включать его содержимое в server.crt.

Типовые ошибки и их причины

Ошибка в логах Причина
Hostname mismatch Адрес сервера не совпадает с CN или SAN сертификата
self signed certificate in certificate chain Содержимое CA включено в server.crt
unable to get local issuer certificate Отсутствует поле SAN в сертификате

Подробнее — в соответствующих troubleshooting-статьях (ссылки ниже).


Схема с балансировщиком HAProxy

Сертификат и ключ к нему должны быть предоставлены отдельно для каждого сервера. Корневой сертификат остаётся общим.

Пример комплекта сертификатов для развёртывания системы в конфигурации балансировщика:

Сервер Роль
Сервер HAProxy Балансировщик
Сервер 1 Мониторинг
Сервер 2 ПринтМенеджер №1
Сервер 3 ПринтМенеджер №2
Сервер 4 ПринтМенеджер №3
Сервер 5 База данных ПринтМенеджеров и NFS-хранилище

Необходимые файлы:

  • Корневой сертификат (.cer/.crt/.pem) — один общий для всех серверов.
  • Сертификат сервера и ключ — для каждого из 6 серверов отдельно.

Примечание: Для филиальных ПринтМенеджеров требуются собственные сертификаты с общим корневым сертификатом.


Альтернатива: автоматические сертификаты

Мониторинг и ПМ позволяют использовать самоподписанные сертификаты, автоматически генерируемые при установке без дополнительных параметров. Самоподписанные сертификаты подходят для работы системы в конфигурации сингл, где Мониторинг и ПМ устанавливаются на один сервер. При использовании самоподписанных сертификатов веб-браузеры будут показывать предупреждение о недоверии на входе в ЛК и панели администратора.