Существует общедоступный сайт, соединение с которым защищено HTTPS. Так же существует небольшое ПО, которое устанавливается на локальный компьютер пользователя и представляет из себя REST-сервер (слушает обращения из браузера пользователя на localhost, при этом веб-приложение загружается с сайта, о котором говорилось в начале, и в дальнейшем, после обработки сообщения, передает данные на внешнее устройство, подключенное по USB CDC). Проблема в том, что если это ПО работает не по HTTPS, Chrome подсвечивает соединение желтым (некоторые ресурсы загружаются с не защищенного соединения), а Firefox вообще блокирует это соединение, пока не разрешишь загрузку не защищенного контента. Прошу совета, как организовать связь так, чтобы браузеры не блокировали соединения c этим ПО.
Из видимых решений:
1, Домен третьего уровня, с A-записью на 127.0.0.1 и подписанный сертификат на этот домен. В клиентским ПО включить HTTPS. Не очень нравится наличие закрытого ключа в этом ПО (т.е. у пользователя на компьютере).
2. Убрать HTTPS с сайта. Хотелось бы избежать подобного.
3. Превратить веб-приложение в устанавливаемое Chrome App и работать с последовательными портами напрямую. Руководство не приветствует это решение, предпочитая текущее решение.
Буду признателен за альтернативные предложения. Ключевой момент - веб-приложение, загружаемое из интернета должно иметь возможность взаимодействовать с аппаратурой, подключенной по последовательным портам.
Вы можете добавить в локальное приложение установку соединения с удаленным сервером напрямую, а не через браузер. Далее, открыв вебсокет, или через long polling, вы можете пересылать данные с компьютера пользователя себе на сервер, а оттуда уже через https всё подгружать на сайт.