Перейти к содержанию

HTTPS - Запуск сервера с TLS сертификатом

Общие сведения

Доступно в СУО версии 4.0.1.0 и выше

Предупреждение

Система Windows 7 не поддерживает работу по протоколу HTTPS. Для корректной работы на сервере и клиентских устройствах с нативными приложениями (звуковое оповещение, терминал, LED-контроллер, сервер записи, регистратор) необходима система выше Windows 7.

Для запуска на этом протоколе необходимо указать серверу место хранения сертификата.

Сервер принимает сертификаты формата PKCS#12 (PFX).

Предупреждение

На данный момент сервер не умеет работать с сертификатом, защищенным паролем.

Указать серверу путь до сертификата можно в службе управления (Windows):

image

или в конфигурационном файле (Linux):

image

Создание сертификата

Для получения сертификата формата PKCS#12 необходимо предварительно получить сертификат и ключ формата PEM, после чего, используя специальные инструменты (например, OpenSSL), конвертировать их в PKCS#12.

Вы можете создать сертификат и ключ любым удобным для вас способом.

Создание самоподписанного сертификата

Самоподписанные сертификаты рекомендуется использовать только на тестовых серверах. Не рекомендуется использовать их на продуктивном контуре из-за проблем безопасности.

При использовании самоподписанного сертификата браузер будет предупреждать о невалидности сертификата, например:

image

Установка необходимого ПО

Установка OpenSSL

Официальной сборки OpenSSL под Windows нет, но существуют сторонние рекомендованные дистрибутивы. В данной инструкции используется Firedaemon OpenSSL.

Необходимо скачать файл установки, запустить его и в процесссе установки добавить бинарные файлы в переменную PATH:

image

В большинстве случаев OpenSSL уже установлен в дистрибутиве, в противном случае его можно установить при помощи пакетного менеджера:

Пример для дистрибутива Debian

$ sudo apt install openssl

Генерирование самоподписанного сертификата

Откройте Powershell в директории, которую будете использовать для генерации сертификата. В примере используется директория С:\certs.

Введите команду:

> openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem

Параметры:

  • -days - количество дней в течение которых сертификат будет считаться валидным
  • -keyout - имя выходного файла ключа
  • -out - имя выходного файла сертификата

Введите дополнительную информацию, которая будет храниться в сертификате:

image

Параметры:

  • Country Name - двухсимвольное обозначение страны
  • State or Province Name - название округа/области
  • Locality Name - название населенного пункта
  • Organization Name - название организации
  • Organizational Unit Name - название отдела
  • Common Name - FQDN, либо имя выпускающего сертификата
  • Email Address - адрес электронной почты, через которую можно связаться с выпустившим сертификат

Откройте терминал в директории, которую будете использовать для генерации сертификата. В примере используется директория /home/enter/certs

Введите команду:

$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem

Параметры:

  • -days - количество дней в течение которых сертификат будет считаться валидным
  • -keyout - имя выходного файла ключа
  • -out - имя выходного файла сертификата

Введите дополнительную информацию, которая будет храниться в сертификате:

image

Параметры:

  • Country Name - двухсимвольное обозначение страны;
  • State or Province Name - название округа/области;
  • Locality Name - название населенного пункта;
  • Organization Name - название организации;
  • Organizational Unit Name - название отдела;
  • Common Name - FQDN, либо имя выпускающего сертификат;
  • Email Address - почтовый ящик, по которму можно связаться с выпустившим сертификат.

Конвертирование сертификата в формат PKCS#12

Находясь в той же директории, необходимо выполнить команду:

> openssl pkcs12 -inkey key.pem -in cert.pem -export -out cert.pfx -passout pass:

Параметры:

  • -inkey - файл ключа в формате PEM
  • -in - файл сертификата в формате PEM
  • -out - имя выходного файла сертификата в формате PKCS#12 (PFX)
  • -passout pass: - генерирация сертификата без пароля

image

$ openssl pkcs12 -inkey key.pem -in cert.pem -export -out cert.pfx -passout pass:

Параметры

  • -inkey - файл ключа в формате PEM
  • -in - файл сертификата в формате PEM
  • -out - имя выходного файла сертификата в формате PKCS#12 (PFX)
  • -passout pass: - генерирует сертификат с пустым паролем

image

После этого можно указать путь к сертификату в настройках сервера. Как это сделать описано в разделе Общие сведения.