# Описание

Программное обеспечение АРМ "Скиф" предоставляет упрощенный web-сервер для интеграции с web приложениями. Суть упрощения состоит в том, что к этому серверу можно подключиться только по протоколу WebSocket. Браузер не может непосредственно подключиться к этому серверу и запросить web страницу. Для подключения нужен заранее подготовленный файл html. Этот файл можно просто скопировать на клиентскую машину и запустить в браузере (см. рис.1), а можно разместить на полноценном web сервере, например apache/ngnix/lighttp (см. рис.2). Если Вы нажмете в меню этой страницы кнопку "Подключение ", то вы как раз запустите файл "work.htm" и браузер попытается подключиться к серверу "Скиф" по адресу 127.0.0.0 с паролем 123456.

# Настройка подключения

Для успешного подключения браузера к серверу "Скиф", необходимо настроить параметры подключения в файле config.js. Сервер "Скиф" так же должен быть настроен. В конфигураторе сервера, на вкладке "АРМы", необходимо добавить АРМ, указать с какого адреса разрешено подключение, задать пароль подключения. В файле config.js необходимо задать пароль для подключения к серверу. Пароль необходимо захешировать.
Пароль сервера:
в хэш SHA1:

Рисунок 1. Подключение напряму к серверу АРМ "Скиф".

Рисунок 2. Использование стороннего web-сервера для загрузки файла "work.htm"

# Настройка шифрования TLS (если требуется шифрование)

1. В конфигураторе на вкладке «Основные» необходимо установить галочку «Шифрование для WebSocket».
2. В файле «WebSocket\config.js» необходимо изменить строку «wsUri = "ws:» на «wsUri = "wss:».
3. В отдельнм каталоге необходимо сгенерировать сертификат при помощи программы openssl:
   - Перед использованием openssl в ОС Windows, необходимо указать путь к конфигурационному файлу. Для этого выполним команду: set OPENSSL_CONF=c:\OpenSSL-Win32\bin\openssl.cfg
   - Создаём корневой ключ: openssl genrsa -out ca.key 2048
   - Создаём ключ сервера: openssl genrsa -out server-key.pem 2048
   - Создаём корневой сертификат: openssl req -x509 -new -key ca.key -days 10000 -out ca.pem
     Произвольно отвечаем на вопросы программы, кроме вопроса "Organization Name (eg, company):" - указываем имя организации чтобы в дальнейшем отличить сертификат среди прочх.
   - Создаем сертификат сервера: openssl req -new -key server-key.pem -out server-crt.pem
     В вопросе "Common Name (e.g. server FQDN or YOUR name) []:" важно указать имя сервера (домен или IP), например: "myserver.ru".
   - Подписываем сертификат сервера корневым сертификатом: openssl x509 -req -in server-crt.pem -CA ca.pem -CAkey ca.key -CAcreateserial -out server-crt.pem -days 5000
4. Необходимо скопировать следующие файлы в каталог Certificates:
   - server-key.pem - приватный ключ сервера,
   - server-crt.pem - сертификат сервера,
   - ca.pem - корневой сертификат CA.
5. Сертификат ca.pem необходимо импортировать в браузер. В Chromium: "Настройки" -> "Дополнительные" -> "Настроить сертификаты" -> "Центры сертификации" -> "Импорт". В каталоге Certificates уже есть самоподписанный сертификат, можно использовать его, но из-за того, что в нем не указано доменное имя, браузер не будет доверять этому сертификату и не будет выводить никаких предупреждений. Чтобы все же установить соединение, нужно после импорта сертификата набрать в браузере строку https://127.0.0.1:54331 (не удастся подключиться, но это и не нужно, нужно просто "подтвердить" необходимость перехода на этот сайт и тем самым самоподписанный сертификат начнет работать) и подтвердить необходимость перехода на сайт. После это запустить файл work.html и шифрованное соединение должно заработать.