Описание

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

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

На вкладке "Параметры" в программе PEventReader необходимо установить галочку "Подключаться к программе по WebSocket", задать TCP порт и пароль. В файле config.js необходимо задать IP-адрес, TCP порт и пароль. Пароль необходимо захешировать. Если в файле config.js не задать пароль (полностью убрать строку "pwd =..."), то пароль будет запрашиваться на странице подключения.
в хэш SHA1:

Рисунок 1. Подключение напряму к программе PEventReader".


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

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

  1. На вкладке "Параметры" в программе PEventReader необходимо установить галочку «Шифрование для 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 и шифрованное соединение должно заработать.