Описание
Программное обеспечение АРМ "Скиф" предоставляет упрощенный 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 (если требуется шифрование)
- В конфигураторе на вкладке «Основные» необходимо установить галочку «Шифрование для WebSocket».
- В файле «WebSocket\config.js» необходимо изменить строку «wsUri = "ws:» на «wsUri = "wss:».
- В отдельнм каталоге необходимо сгенерировать сертификат при помощи программы 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
- Необходимо скопировать следующие файлы в каталог Certificates:
- server-key.pem - приватный ключ сервера,
- server-crt.pem - сертификат сервера,
- ca.pem - корневой сертификат CA.
- Сертификат ca.pem необходимо импортировать в браузер. В Chromium: "Настройки" -> "Дополнительные" -> "Настроить сертификаты" -> "Центры сертификации" -> "Импорт". В каталоге Certificates уже есть самоподписанный сертификат, можно использовать его, но из-за того, что в нем не указано доменное имя, браузер не будет доверять этому сертификату и не будет выводить никаких предупреждений. Чтобы все же установить соединение, нужно после импорта сертификата набрать в браузере строку https://127.0.0.1:54331 (не удастся подключиться, но это и не нужно, нужно просто "подтвердить" необходимость перехода на этот сайт и тем самым самоподписанный сертификат начнет работать) и подтвердить необходимость перехода на сайт. После это запустить файл work.html и шифрованное соединение должно заработать.