0
ai-systems@bk.ru 8 months ago in Продукты / AV & Custom Systems • updated 1 month ago 33

How to send something like this?

https://IP:PORT/health?password=123456

Здравствуйте!
Тоже очень интересно, как отправить такую команду на https. Ответьте, пожалуйста.

Hello!
It's also very interesting how to send such a command to https. Answer please.


http://dev.iridiummobile.net/AV_%26_Custom_Systems/en#AV_Custom_Systems_(Client)

Port: 443 SSL: Enable

IR.GetDevice("AV & Custom Systems (HTTP)")
    .Send(['GET,/health?password=123456'])

?!

Нет ответа от оборудования при таких настройках.


У меня порт другой используется. 8080.
SSL включаю. В ответ - тишина. А браузеру отвечает. Но согласно SDK моего сервера прямой привязки к браузерам нет, команды предназначены для работы с любыми клиентами. Может винда что-то глушит? Но на порт при вкл. SSL что-то приходит.

порты пробовал в настройках сервера и установках драйвера поменять на 443 - не помогло.

Может причина в сертификатах SSL?


Maybe the trouble is in the certificates?

Use the hostname instead IP address!

IR.GetDevice("AV & Custom Systems (HTTP)")
    .Send(['GET,/get?password=123456'])
  //https://httpbin.org/get?password=123456

IR.AddListener(IR.EVENT_RECEIVE_DATA, IR.GetDevice("AV & Custom Systems (HTTP)"), function(data) 
{  
    IR.Log(data);
});

Hm... no hostname. No dns server in LAN.

It should work with ip address.

Self-Signed SSL Certificate?

I imported the certificate.

сертификат я импортировал.

+1

i3 Pro (iRidium Client) works also with self-signed certificates (tested on Win and iPad)
Including with Apache 2.4, tested (http://www.selfsignedcertificate.com/)
https://self-signed.badssl.com/

Это значит, что у сервера, к которому я подключаюсь, должна быть какая-то совместимость?
Как сформулировать вопрос к производителям сервера?
Если я, конечно, все правильно понял..

+1
openssl s_client -connect self-signed.badssl.com:443 -showcerts
openssl -verbose verify -CAfile badsslcom.crt badsslcom.crt
nmap --script ssl-enum-ciphers -p 443 self-signed.badssl.com

https://www.openssl.org/docs/standards.html

Simply you may use http to https proxy relay.

мне подсказали, что то, о чем Вы написали - это сделать туннель, уйти от криптографии иридия. Так а в чем в итоге проблема, в иридии что-то не доделано для SSL или просто сервер, к которому я подключаюсь чем-то не сходится с иридием? Вопрос,я понял, решить можно но это ведь костыли?

ну и вы писали про i3 Pro. Я же и с панельного приложения и с серверного пытюсь подключиться - результат один и тот же.

Виктор, сложно судить, если нет никаких данных. Выше приведены примерные команды для теста управляемой железяки (получение списка поддерживаемых протоколов шифрования, проверка корректности самоподписанного сертификата). Пока что особых ограничений со стороны iRidium'а я не заметил. Если железяка умеет работать по HTTP - столь ли важен SSL, тем более, если это локальное управление...


Проверьте также выставленное время на устройствах.


Use the commands above to get a list of supported encryption protocols, the correctness of the self-signed certificate.

Also check the time-date set on the devices.

У меня иридий подключается к другому ПО. А у него возможность работать только через https. Так что выбирать не приходится( Теперь понятно что вы команды мне показали, спасибо. Знать бы еще как их применить. Был бы я программистом, наверное, не возникло бы такого вопроса. А используя иридий, надеялся избежать программерских подходов. А то SSL есть, но вот правда не подключиться по причинам, выходящим за рамки моего понимания((

да, еще важный нюанс. У меня сервер, к которому я обращаюсь находится на томже компе что и иридий-студия. Может все эти транспортные дела как-то иначе настраиваются, когда клиент и сервер на одной машине? WireShark на мои запросы показывает совсем другую картину, не такую как если кинуть запрос в инет через SSL.

Виктор, WIreshark в обычном случае не показывает локальные подключения.

В качестве Host вы указываете localhost / 127.0.0.1 ?

Может ПО слушает не все интерфейсы?

https://technet.microsoft.com/en-us/sysinternals/tcpview.aspx


В случае с Apache локальное подключение по SSL работает.

Здесь, конечно, наиболее вероятен шанс блокировки брандмауэром. Если ПО есть в каком-то доступе (trial), то сможем проверить его работу на других PC.


Local Connection (localhost) over SSL works. Try to disable firewall.

+1

В общем, ai-systems

попробуйте стукнуть к серверу не на вашей же машине, если у вас такая ситуация. У меня все заработало когда я переставил иридий на другой комп в сети и с него на тот же сервер кинул запрос. Все заработало без проблем.

Андрей, спасибо за помощь, подвигли немого углубиться в вопрос.

Андрей, пока писал сообщение не видел вашего, наверное писали одновременно)

Да, хост был либо 127.0.0.1 либо я ставил IP внутрисетевой 192.168.1.102. Я так и не понял в чем было дело, но по пакетам Wireshark понял что что-то не то идет при моих запросах и решил, что может SSL работает при обращении через сеть, а у меня сети в данном случае нет. Знакомый программист тоже укзаал на TCPView, но к чему - не сказал. Если не сложно, в двух словах или натолкниет в чем я был на прав и как мне бы помог TCPView? Был бы признателен.
А брэндмауэр у меня отключен.

И рано радоваться начал. Когда на второй комп поставил сервер ПО, а с основного попытался подключиться, опять не заработало. Попробвал со второго суткнуться к первому - тишина))) Я рехнусь с этими компами)) В итоге опять все не работает)

В TCPView можно увидеть порты, которые "слушает" ПО и активность сессий, но если сбой возникает во время самого обменна данными при попытке установить SSL сеанс, то это мало поможет, openssl в таком случае будет полезнее. Подозреваю, что история несколько проще.


In TCPView, you can see ports that software listen and the sessions activity.

Хм. Виктор. А что за ПО если не секрет? В моем случае это Trassir. Я пробовал и локально и через сеть подключаться. Ответа пока так и не получил....Еще раз попробую.

У меня на Trassir 4.0.123028 не воспроизводится сложность (iRidium v1.1.3.19396)

У вас какие версии?


IR.GetDevice("AV & Custom Systems (HTTP)")
.Send(['GET,/health?username=admin&password=admin']) //https://localhost:8080/health?username=admin&password=admin
IR.AddListener(IR.EVENT_RECEIVE_TEXT, IR.GetDevice("AV & Custom Systems (HTTP)"), function(text) 
{ IR.Log(text); });

{
	"disks": "0",
	"database": "0",
	"channels_total": "0",
	"channels_online": "0",
	"uptime": "1049",
	"cpu_load": "14.85",
	"network": "1",
	"automation": "1",
	"disks_stat_main_days": "0.00",
	"disks_stat_priv_days": "0.00",
	"disks_stat_subs_days": "0.00"
}
/*

Meanings of values:

-1 - undefined value
 0 - bad health (error)
 1 - good health (ok)

Values for channels are channel counters.

Value of cpu_load is given in percents.

*/

У меня Trassir3Demo Service Pack 6664, Grabber Pack 6664
на иридии версии 1.0.10.439 (это у меня самый старый) - работает. Даже по localhost если ставить на одном компе. Включаю SSL и все ОК.

На моей текущей версии иридия 1.1.3.19396 не соединяется при аналогичных настройках.
Когда я писал что у меня все заработало с другого компа я не обратил внимание что там иридий старый стоял. Отправил весь расклад на саппорт, обещали разобраться. Демку им тоже скинул. Теперь допускаю что дело может быть и в демке трассира. Буду искать боевой вариант современного трассира.

Скажите, а есть алгоритм, по которому можно узнать в чем дело? А то я и порты слушал и шарком сниффил.. толку нет, т.к. не системно это все. Только методом тыка нашел различие из-за версий, но из-за чего именно нет соединения или оно обрывается не выяснил.


(я использовал порт 888 вместо 8080)


Насколько я понял i3 Pro v1.1.3 хочет видеть версию протокола TLS 1.2,

а Trassir V3 6664 может предложить только TLS 1.0


Создайте дамп попытки подключения с i3 Pro и дамп удачной загрузки страницы с браузера (или предыдущей версией i3 pro), например https://127.0.0.1:8080/health?username=admin&password=admin

воспользуйтесь для этого RawCap

оба файла прикрепите к тикету

Вот спасибо, Андрей! Если что понадобится - обращайтесь, буду рад помочь. RawCap показал, стало яснее. Шарк локалхост не сниффил.

Файлы приложу. С хрома со строки 17 - успешно, с иридия нового со стр. 50.

Успешная картина привет от хрома:

привет от трассира:

и снова привет от клиента:


А теперь безуспешный запрос от иридия:


ответ ему от трассира


и сообщение о том, что связь не состоится:


Вот теперь хотя бы по ответу понятно, что дело в версии протокола. Но я так и не понял,почему иридий не согласился на 1.0 ведь в его запросе есть и 1.0 и 1.2. Вероятно, я не правильно интерпретировал запрос. В ответе от трассира вижу да, только 1.0.

dumpchrome.pcap


блин дамп с иридием испортился что-ли?? Теперь толкьо завтра переделаю и отправлю. Хорошо что картинки сделал.

Да, в техподдержке мне сказали, что Иридиум поддерживает OpenSSL 1.0.2h. Не знаю, поможет это разобраться или нет..

дамп от иридия 1.0.10 - успешный

iR10.pcap

+1

Я построково проверил первые два сообщения сессии - запрос от иридия и ответ от трассира - 100% однинаковые кроме рандомов, которые от времени. А вот третье ни с того ни с сего - Fatal. Сверял блок SSL

Рандомы....

Не знаю связано или нет. Но в иридиуме есть баг. Неисправленный.

Если в json.stringify отдать строку в которой будет параметр "Random:что то" то порядок парсинга меняется. И строка json получится с рандомным положением слова "Random:что то".

Баг в связи с редкостью так и не пофиксили.

Ну это так... оффтоп.

У меня trassir вообще ниразу не ответил иридиуму.....((