Настройка при работе с одним сервером

<< Показать Оглавление >>

Шифрование трафика      

Настройка при работе с одним сервером

atten_red

Приведённые настройки подразумевают, что nginx находится на одном хосте c Dictation Server. Если они находятся на разных хостах, то:

•в настройках nginx порты Listen должны совпадать с backend_ws, backend_rest, то есть с портами 34000 и 39255, соответственно;

•в настройках Dictation Server порты менять не нужно.

Настройка nginx

Для настройки шифрования требуется установить nginx между клиентским и серверным приложениями Voice2Med.

ClientServerSSL

Схема работы с шифрованием

Так как hop-by-hop заголовки (в том числе Upgrade и Connection) не передаются от клиента к проксируемому серверу, то проксируемый сервер не узнает о намерении клиента сменить протокол с REST на WebSocket. Все заголовки следует передать явно.

Значение параметра $connection_upgrade определяется в map-е.

В примере конфигурационного файла nginx замените

•dct-srv.local на доменное имя или IP-адрес сервера Dictation Server,

•[Certs] на сертификат в формате .crt,

•[Key] на ключ в формате .key.

 

#user nobody;

worker_processes  auto;

 

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

 

#pid    logs/nginx.pid;

 

events {

 worker_connections 1024;

}

 

http {

 include    mime.types;

 default_type application/octet-stream;

 

 map $http_upgrade $connection_upgrade {

  default upgrade;

  ''   close;

 }

 

 sendfile      on;

 keepalive_timeout 65;

 

 upstream backend_ws {

  least_conn;

  server 127.0.0.1:34001; 

 }

 upstream backend_rest {

  least_conn;

  server 127.0.0.1:39257; 

 }

 

 server {

  listen       34000 ssl;

  server_name     dct-srv.local;

  ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;

  ssl_certificate   [Certs];

  ssl_certificate_key [Key];

 

  location / {

   proxy_pass http://backend_ws;

   proxy_http_version 1.1;

   proxy_buffering off;

   proxy_read_timeout 7d;

   proxy_send_timeout 7d;

   tcp_nodelay on;

   proxy_set_header Upgrade  $http_upgrade;

   proxy_set_header Connection $connection_upgrade;

  }

  error_page  500 502 503 504 /50x.html;

  location = /50x.html {

   root  html;

  }

 }

 

 server {

  listen       39255 ssl;

  server_name     dct-srv.local;

  ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;

  ssl_certificate   [Certs];

  ssl_certificate_key [Key];

  location / {

   proxy_pass http://backend_rest;

   auth_basic off;

   allow all;

   proxy_buffering         off;

   proxy_set_header Host      $host;

   proxy_set_header X-Real-IP    $remote_addr;

   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  }

  error_page  500 502 503 504 /50x.html;

  location = /50x.html {

   root  html;

  }

 }

}

 

Настройка Dictation Server

Перейдите в папку

/etc/DictationApp.Server

 

В файле Dictation.Asr.Server.Properties.Settings.config укажите значение настройки Port:

 

<Dictation.Asr.Server.Properties.Settings>

...

 <setting name="Port" serializeAs="String">

        <value>34001</value>

 </setting>

...

</Dictation.Asr.Server.Properties.Settings>

 

В файле Dictation.Common.Properties.Settings.config укажите значение настройки BalancerPort:
 

<Dictation.Common.Properties.Settings>
...
 <setting name="BalancerPort" serializeAs="String">
        <value>39257</value>
 </setting>
</Dictation.Common.Properties.Settings>

 

В файле Dictation.Rest.Server.Properties.Settings.config укажите значение настройки Port:

 

<Dictation.Rest.Server.Properties.Settings>
 <setting name="Port" serializeAs="String">
        <value>39257</value>
 </setting>
</Dictation.Rest.Server.Properties.Settings>

 

atten_red

Если какого-то из файлов конфигурации в папке нет, создайте его и скопируйте в него настройки из примера.

Настройка Voice2Med Client

Для каждого клиентского приложения внесите изменения в файл конфигурации.

Откройте файл:

~/.config/Speech Technology Center/DictationClient/settings.ini

 

В блоке [SSL] укажите способ проверки сертификата безопасности в параметре SslCertificateVerification. Допустимые значения:

•Strict
SSL-сертификат должен быть подписан доверенным корневым сертификатом и имя сервера должно совпадать с именем, указанным в сертификате (допустимо указывать IP-адрес вместо имени сервера);

•Insecure
SSL-сертификат может быть подписан недоверенным сертификатом.

<applicationSettings>

...

  <Dictation.Common.Properties.CommonSettings>

  ...

 <setting name="SslCertificateVerification" serializeAs="String">

        <value>Strict</value>

 </setting>

  ...

  </Dictation.Common.Properties.CommonSettings>

...

</applicationSettings>

 

atten_red

Если эта секция отсутствует, допишите ее в файл.