HTTPS - Запуск сервера с TLS сертификатом¶
Общие сведения¶
C версии 4.0.1.0 в СУО Enter добавлена поддержка работы по протоколу HTTPS.
Предупреждение
Система Windows 7 не поддерживает работу по протоколу HTTPS. Для корректной работы на сервере и клиентских устройствах с нативными приложениями (звуковое оповещение, терминал, LED-контроллер, сервер записи, регистратор) необходима система выше Windows 7.
Для запуска на этом протоколе необходимо указать серверу место хранения сертификата.
Сервер принимает сертификаты формата PKCS#12 (PFX).
Предупреждение
На данный момент сервер не умеет работать с сертификатом, защищенным паролем.
Указать серверу путь до сертификата можно в службе управления (Windows):
или в конфигурационном файле (Linux):
Создание сертификата¶
Для получения сертификата формата PKCS#12 необходимо предварительно получить сертификат и ключ формата PEM, после чего, используя специальные инструменты (например, OpenSSL), конвертировать их в PKCS#12.
Вы можете создать сертификат и ключ любым удобным для вас способом.
Создание самоподписанного сертификата¶
Самоподписанные сертификаты рекомендуется использовать только на тестовых серверах. Не рекомендуется использовать их на продуктивном контуре из-за проблем безопасности.
При использовании самоподписанного сертификата браузер будет предупреждать о невалидности сертификата, например:
Установка необходимого ПО¶
Установка OpenSSL
Официальной сборки OpenSSL под Windows нет, но существуют сторонние рекомендованные дистрибутивы. В данной инструкции используется Firedaemon OpenSSL.
Необходимо скачать файл установки, запустить его и в процесссе установки добавить бинарные файлы в переменную PATH:
В большинстве случаев OpenSSL уже установлен в дистрибутиве, в противном случае его можно установить при помощи пакетного менеджера:
$ sudo apt install openssl
Предупреждение
Пример приведен для дистрибутива Debian.
Генерирование самоподписанного сертификата¶
Откройте Powershell в директории, которую будете использовать для генерации сертификата. В примере используется директория С:\certs.
Введите команду:
> openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem
Параметры:
-days - количество дней в течение которых сертификат будет считаться валидным;-keyout - имя выходного файла ключа;-out - имя выходного файла сертификата.
Введите дополнительную информацию, которая будет храниться в сертификате:
Параметры:
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 - имя выходного файла сертификата.
Введите дополнительную информацию, которая будет храниться в сертификате:
Параметры:
Country Name - двухсимвольное обозначение страны;State or Province Name - название округа/области;Locality Name - название населенного пункта;Organization Name - название организации;Organizational Unit Name - название отдела;Common Name - FQDN <https://ru.wikipedia.org/wiki/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: - генерирация сертификата без пароля.
$ openssl pkcs12 -inkey key.pem -in cert.pem -export -out cert.pfx -passout pass:
Параметры
-inkey - файл ключа в формате PEM;-in - файл сертификата в формате PEM;-out - имя выходного файла сертификата в формате PKCS#12 (PFX);-passout pass: - генерирует сертификат с пустым паролем;
После этого можно указать путь к сертификату в настройках сервера. Как это сделать описано в разделе Общие сведения.