Настройка Web-форм при работе через HTTPS

Если работа веб-приложения осуществляется по протоколу HTTPS, то для корректной работы Web-форм, использующих протокол WebSocket, потребуется дополнительная настройка, чтобы использовалось шифрованное соединение WSS.

  1. В файл настроек /etc/apache2-fp10.x-web/sites-available/webserver.conf добавьте строки:

<VirtualHost *:9091>

ProxyPass /service ws://localhost:${WS_PORT}/service

ProxyPassReverse /service ws://localhost:${WS_PORT}/service

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/cert.crt

SSLCertificateKeyFile /etc/apache2/ssl/cert.key

SSLProxyEngine On

RewriteEngine On

RewriteCond %{HTTP:Connection} upgrade [NC]

RewriteCond %{HTTP:Upgrade} websocket [NC]

RewriteRule ^(.*) ws://localhost:${WS_PORT}/$1 [P,L]

</VirtualHost>

где, cert.crt, cert.key - это файлы предварительно сгенерированного и установленного сертификата безопасности. Сертификат безопасности может быть подготовлен с помощью специальных криптографических программных средств, например, OpenSSL. Пример установки приведён в подразделе «Настройка двухфакторной аутентификации».

  1. В файле с переменными окружения /etc/apache2-fp10.x-web/envvars в конец добавьте строку:

export WS_PORT=9093

где 9093 - это порт, который будет определён на BI-сервере в пункте 4.

  1. В файле /etc/apache2-fp10.x-web/ports.conf добавьте для прослушивания порт 9091, на который будут направляться запросы с клиента:

<IfModule ssl_module>

Listen 443

Listen 9091

</IfModule>

  1. Установите модули proxy_http, proxy_wstunnel:

sudo a2enmod proxy_http proxy_wstunnel

  1. В файле настроек BI-сервера settings.xml определите порт Web-форм для работы по протоколу WebSocket:

<Configuration>

  <Root>

    <Key Name="PP">

      <BIS>

        <Key Name="System">

          <WebForms Port="9093"/>

        </Key>

      </BIS>

    </Key>

  </Root>

</Configuration>

В качестве альтернативного варианта настройки можно задать следующим образом:

  1. В файл настроек /etc/apache2-fp10.x-web/sites-available/webserver.conf добавьте строки:

<VirtualHost *:9093>

ProxyPass /service ws://localhost:${WS_PORT}/service

ProxyPassReverse /service ws://localhost:${WS_PORT}/service

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/cert.crt

SSLCertificateKeyFile /etc/apache2/ssl/cert.key

SSLProxyEngine On

RewriteEngine On

RewriteCond %{HTTP:Connection} upgrade [NC]

RewriteCond %{HTTP:Upgrade} websocket [NC]

RewriteRule ^(.*) ws://localhost:${WS_PORT}/$1 [P,L]

</VirtualHost>

  1. В файле с переменными окружения /etc/apache2-fp10.x-web/envvars в конец добавьте строку:

export WS_PORT=9091

  1. В файле /etc/apache2-fp10.x-web/ports.conf добавьте для прослушивания порт 9093, на который будут направляться запросы с клиента:

<IfModule ssl_module>

Listen 443

Listen 9093

</IfModule>

  1. В файле настроек веб-приложения config.json укажите порт, на котором будут работать Web-формы:

{
  ...
  "webSocketPort": "9093",
  ...
}

См. также:

Серверная часть веб-приложения