В этой статье:
Шаг 2. Создание сертификата безопасности
Для настройки безопасной работы веб-приложения по протоколу HTTPS требуется сертификат безопасности, который включает в себя набор сгенерированных сертификатов:
Корневой сертификат. Используется для генерации и подписи сертификата сервера;
Сертификат сервера. Используется веб-сервером Apache2 в ОС Linux или IIS в ОС Windows.
Получите доверенный корневой сертификат, а также один или несколько доверенных промежуточных сертификатов центров сертификации, которые использовались для подписи сертификата сервера.
Сертификат безопасности генерируется с помощью специальных криптографических программных средств, например, OpenSSL. Для генерации сертификата выполните шаги 1, 2. Если сертификат уже получен, то разместите его в указанной папке и перейдите к шагу 3.
Шаги по установке OpenSSL отличаются в зависимости от используемой операционной системы.
Для установки OpenSSL в ОС Linux выполните команду:
Debian-подобные дистрибутивы, ALT Linux:
sudo apt-get install openssl
RedHat-подобные дистрибутивы:
sudo yum install openssl
После выполнения действий будет установлена библиотека OpenSSL.
Для установки OpenSSL в ОС Windows:
Скачайте и запустите инсталлятор OpenSSL. По умолчанию OpenSSL устанавливается в папку C:\Program Files\OpenSSL-Win64.
Добавьте в системную переменную PATH путь до папки bin - C:\Program Files\OpenSSL-Win64\bin.
После выполнения действий будет установлена библиотека OpenSSL.
Предварительно создайте папку, в которой будет храниться сертификат безопасности.
Для создания папки в ОС Linux и раздачи прав доступа к ней выполните команды:
Debian-подобные дистрибутивы:
mkdir /etc/apache2-fp10.x-web/ssl
sudo chmod 0600 /etc/apache2-fp10.x-web/ssl
sudo chown -R www-data:www-data /etc/apache2-fp10.x-web/ssl
RedHat-подобные дистрибутивы:
mkdir /etc/httpd-fp10.x-web/ssl
sudo chmod 0600 /etc/httpd-fp10.x-web/ssl
sudo chown -R apache:apache /etc/httpd-fp10.x-web/ssl
ALT Linux:
mkdir /etc/httpd2-fp10.x-web/ssl
sudo chmod 0600 /etc/httpd2-fp10.x-web/ssl
sudo chown -R apache2:apache2 /etc/httpd2-fp10.x-web/ssl
После выполнения команд будут созданы папки:
/etc/apache2-fp10.x-web/ssl в Debian-подобных дистрибутивах;
/etc/httpd-fp10.x-web/ssl в RedHat-подобных дистрибутивах;
/etc/httpd2-fp10.x-web/ssl в ALT Linux.
В ОС Windows создайте папку C:\certs.
В процессе создания сертификата безопасности будут созданы следующие файлы:
ca.cer. Корневой сертификат сроком действия 1000 дней;
ca.key. Закрытый ключ шифрования корневого сертификата;
server.cer. Сертификат сервера сроком действия 365 дней для веб-сервера Apache2 в ОС Linux;
server.key. Закрытый ключ шифрования сертификата сервера для веб-сервера Apache2 в ОС Linux;
server.pfx. Сертификат сервера сроком действия 365 дней для веб-сервера IIS в ОС Windows.
При необходимости можно изменить наименования сертификатов, закрытых ключей и сроки действия в командах, указанных ниже. В подстановке <путь до папки> используйте созданную папку, которая предназначена для хранения сертификата безопасности.
Для выполнения команд в ОС Windows перейдите в директорию с установленным OpenSSL:
cd C:\Program Files\OpenSSL-Win64
Для создания корневого сертификата выполните команду:
openssl req -newkey rsa:2048 -nodes -keyform PEM -keyout <путь до папки>\ca.key -x509 -days 1000 -outform PEM -out <путь до папки>\ca.cer
В процессе выполнения команды заполните дополнительные данные о сертификате, запрашиваемые в интерактивном режиме. После выполнения команды будет создан корневой сертификат ca.cer и закрытый ключ шифрования ca.key в указанной папке.
Для создания сертификата сервера:
Сгенерируйте закрытый ключ шифрования для сертификата сервера:
openssl genrsa -out <путь до папки>\server.key 2048
Создайте запрос на подпись сертификата сервера:
openssl req -new -key <путь до папки>\server.key -out <путь до папки>\server.req
В процессе выполнения команды заполните дополнительные данные о сертификате, запрашиваемые в интерактивном режиме.
Подпишите созданный запрос корневым сертификатом и сгенерируйте сертификат сервера:
openssl x509 -req -in <путь до папки>\server.req -CA <путь до папки>\ca.cer -CAkey <путь до папки>\ca.key -set_serial 100 -days 365 -outform PEM -out <путь до папки>\server.cer
Экспортируйте сертификат сервера и закрытый ключ шифрования в сертификат в формате PKCS#12 (PFX) в ОС Windows:
openssl pkcs12 -export -inkey c:\certs\server.key -in c:\certs\server.cer -out c:\certs\server.pfx
Выполните действия в зависимости от операционной системы:
в ОС Linux удалите запрос server.req в целях безопасности:
rm <путь до папки>\server.req
в ОС Windows удалите сертификат сервера server.cer, закрытый ключ шифрования server.key и запрос server.req в целях безопасности:
del c:\certs\server.cer c:\certs\server.key c:\certs\server.req
После выполнения действий:
в ОС Linux будет создан сертификат сервера server.cer и закрытый ключ server.key в указанной папке;
в ОС Windows будет создан сертификат сервера server.pfx в папке C:\certs.
Для импорта корневого сертификата в хранилище доверенных корневых центров сертификации используйте поддерживаемый браузер или средства операционной системы. Средствами операционной системы можно импортировать сертификат в хранилище только в ОС Windows.
Рассмотрим импорт сертификата на примере Mozilla Firefox:
Откройте настройки браузера по адресу:
about:preferences
Перейдите в раздел «Приватность и Защита».
Нажмите кнопку «Просмотр сертификатов» в подразделе «Сертификаты». После чего будет открыто окно «Управление сертификатами».
Нажмите кнопку «Импортировать» на вкладке «Центры сертификации». После чего будет выдан стандартный диалог выбора файла.
Выберите корневой сертификат ca.cer. После чего будет открыто окно «Загрузка сертификата».
Установите флажок «Доверять при идентификации веб-сайтов».
После выполнения действий корневой сертификат будет импортирован в хранилище доверенных корневых центров сертификации.
Шаги по настройке отличаются в зависимости от используемого веб-сервера и операционной системы.
Для настройки веб-сервера Apache2 в ОС Linux:
Подключите модуль mod_ssl:
Debian-подобные дистрибутивы:
sudo a2enmod-fp10.x
ssl
sudo a2enmod-fp10.x-web ssl
sudo a2ensite-fp10.x-web default-ssl
RedHat-подобные дистрибутивы:
sudo yum -y install mod_ssl
ALT Linux:
sudo /usr/sbin/a2enmod-fp10.x
ssl
sudo /usr/sbin/a2enmod-fp10.x-web ssl
systemctl condreload httpd2-fp10.x-web.service
После выполнения действий будет подключен модуль mod_ssl. Для получения подробной информации о модуле обратитесь к документации Apache2.
Примечание. Для HTTPS-соединений открыт 443 TCP-порт, mod_ssl использует пакет openssl и по умолчанию отключена поддержка протокола SSLv2.
Для RedHat-подобных дистрибутивов будет создан файл конфигурации /etc/httpd-fp10.x-web/conf.d/ssl.conf со строкой подключения модуля:
LoadModule ssl_module modules/mod_ssl.so
Для ALT Linux будет создан файл конфигурации /etc/httpd2-fp10.x-web/conf/mods-enabled/ssl.load со строкой подключения модуля:
LoadModule ssl_module /usr/lib64/apache2/modules/mod_ssl.so
Добавьте параметры SSL в раздел <VirtualHost> в файле:
/etc/apache2-fp10.x-web/sites-available/webserver.conf в Debian-подобных дистрибутивах;
/etc/httpd-fp10.x-web/conf.d/00-virtualhost.conf в RedHat-подобных дистрибутивах;
/etc/httpd2-fp10.x-web/conf/sites-enabled/000-default.conf в ALT Linux.
SSLProxyEngine
On
SSLProxyCheckPeerCN On
SSLProxyCheckPeerExpire On
SSLEngine On
SSLCertificateFile <путь
до папки>/server.cer
SSLCertificateKeyFile <путь
до папки>/server.key
Параметр SSLProxyCheckPeerCN проверяет имя сервера, указанного в интерактивном режиме при генерации корневого сертификата и сертификата сервера в параметре Common Name. Если используются разные сервера, то измените значение параметра SSLProxyCheckPeerCN на «Off».
Измените протокол HTTP на HTTPS и номер порта, если он отличается от порта по умолчанию - 443:
в значении переменной PP_SOM в файле /etc/opt/foresight/fp10.x-webserver/envvars;
в файлах конфигурации веб-приложения /opt/foresight/fp10.x-webserver/r/config/config.json, /opt/foresight/fp10.x-webserver/config/PP.xml.
Перезапустите веб-сервер:
Debian-подобные дистрибутивы:
sudo systemctl restart apache2-fp10.x-web
RedHat-подобные дистрибутивы:
sudo systemctl restart httpd-fp10.x-web
ALT Linux:
sudo systemctl restart httpd2-fp10.x-web
После выполнения действий будет настроен веб-сервер Apache2.
Для настройки веб-сервера IIS в ОС Windows откройте диспетчер служб IIS на начальной странице и выполните действия:
Откройте функцию «Сертификаты сервера» в разделе «IIS» двойным щелчком мыши или с помощью команды контекстного меню «Открытие функции».
Выполните команду «Импортировать» на панели «Действия». После чего будет открыто окно «Импорт сертификата»:
Задайте параметры:
Файл сертификата (.pfx). Укажите путь до сертификата сервера server.pfx;
Пароль. Укажите пароль, который использовался при создании сертификата сервера;
Выбрать хранилище сертификатов. Выберите в раскрывающемся списке «Размещение веб-служб».
Нажмите кнопку «ОК».
Выберите сайт в дереве «Подключения» и выполните команду «Привязки» на панели «Действия». После чего будет открыто окно «Привязки сайта».
Нажмите кнопку «Добавить». После чего будет открыто окно «Добавление привязки сайта»:
Задайте параметры:
Тип. Выберите в раскрывающемся списке «https»;
SSL-сертификат. Выберите в раскрывающемся списке сервер, соответствующий импортированному сертификату сервера.
Измените протокол HTTP на HTTPS в файлах конфигурации веб-приложения PP.xml, config.json.
Выберите сервер в дереве «Подключения» и выполните команду «Перезапустить» на панели «Действия».
После выполнения действий будет настроен веб-сервер IIS.
Для открытия веб-приложения по протоколу HTTPS используйте поддерживаемый браузер и укажите адрес в строке подключения:
в ОС Linux:
https://<веб-сервер>/fp10.x/r/
в ОС Windows:
https://<веб-сервер>/FP_App_v10.x/r/
Где:
<веб-сервер>. IP-адрес или DNS-имя сервера, на котором установлена серверная часть веб-приложения.
См. также:
Настройка конфигурации веб-приложения | Открытие веб-приложения