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

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

C версии 4.0.1.0 в СУО Enter добавлена поддержка работы по протоколу HTTPS.

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

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

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

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

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

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

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

../_images/certificate_path_windows.png

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

../_images/certificate_path_linux.png

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

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

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

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

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

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

../_images/not_valid_cert_warning.png

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

Установка OpenSSL

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

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

../_images/firedaemon_path.png

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

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

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

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

Параметры:

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

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

../_images/openssl_additional_info_windows.png

Параметры:

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: - генерирация сертификата без пароля.
../_images/gen_pfx_windows.png

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