0
Answered

HTTPS

ai-systems@bk.ru 3 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 2 years ago 36

How to send something like this?

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

-1

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

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


-1

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'])

?!

-2

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


-1

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

-1

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

-1

Может причина в сертификатах 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);
});

-1

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

It should work with ip address.

-1

Self-Signed SSL Certificate?

-1
I imported the certificate.

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

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.

-1

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

-1

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

-1

Виктор, сложно судить, если нет никаких данных. Выше приведены примерные команды для теста управляемой железяки (получение списка поддерживаемых протоколов шифрования, проверка корректности самоподписанного сертификата). Пока что особых ограничений со стороны 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.

-1

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

-1

да, еще важный нюанс. У меня сервер, к которому я обращаюсь находится на томже компе что и иридий-студия. Может все эти транспортные дела как-то иначе настраиваются, когда клиент и сервер на одной машине? 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, он самый

У меня на 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. Не знаю, поможет это разобраться или нет..

дамп от иридия 113

iR113.pcap

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

iR10.pcap

+1

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

Рандомы....

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

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

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

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

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


Waiting for user's reply

В версии 1.1.7 можно выбирать версию протокола SSL в настройках. Попробуйте, пожалуйста.

+1

Да, мне уже сообщили. У меня в SSL2.3 и 3.0 заработало. Приятно видеть, что оперативно вносите важные изменения, спасибо за проделанную работу! Трассир, таким образом, и 3 и 4 пашет без вопросов.