netup_user писал(а):Изучив PHP-шную реализацию клиента начал понимать, в чем дело.
Получается, что SSL-протокол в установленном соединении нужно включать не сразу, а после того, как произойдет авторизация подключения. Т.е. сначала клиентом urfa должны быть переданы хеши логина/пароля без SSL, и если они верны, то UTM5 авторизует TCP сессию. И уже только после этого urfa-клиент может включать SSL.
Интересно, почему в протоколе urfa включение SSL происходит НЕ сразу, а только после проверки логина/пароля?
Добрый день, а можете поделится рабочим примером? Тоже пытаюсь реализовать urfa клиента на python для версии 5.3.002 update18, но что то не получается пока.
Ругается на
Код: Выделить всё
ssl.SSLError: [SSL: SSL_HANDSHAKE_FAILURE] ssl handshake failure (_ssl.c:1646)
хотя ядро вываливает
Код: Выделить всё
?Debug : 8418000 RPCServer: Client connecting: [127.0.0.1]:14332
Info : 8418000 RPC2Connection: Connection from: [127.0.0.1]:14332 new Session Key <51311a57000000009e12b1174659d74a>
Info : 8418000 RPCConn: Card user <init@127.0.0.1> is connecting
?Debug : 8418000 DBAgroups: UID -1 from system group 1
?Debug : 8418000 ModTop: connection <33> created
Info : 8418000 RPCConn[SSL]<init@127.0.0.1>: Access granted to [SSL]<init@127.0.0.1> (UID: -1)
?Debug : 8418000 RPCConn[SSL]<init@127.0.0.1>: SSL type requested: SSLv3(4)
?Debug : 8418000 RPCConn[SSL]<init@127.0.0.1>: SSL error lines: 34498248704:error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher:/usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/s3_srvr.c:1396:
ERROR : 8418000 RPCConn[SSL]<init@127.0.0.1>: SSL connection failed (4), system errno <0>
?Debug : 8418000 RPC2Connection: Session Key <51311a57000000009e12b1174659d74a> stored for UID -1 from <127.0.0.1>
?Debug : 8418000 RPCConn[SSL]<init@127.0.0.1>: SSL cleared
?Debug : 8418000 ModTop: connection <33> closed
?Debug : 8418000 RPCConn[SSL]<init@127.0.0.1>: Session closed...
тоесть авторизацию он проходит, но возникают какие то проблемы в момент инициализации ssl, а в чём конкретно проблема, не пойму.
У нас всё тоже самое. После обновления 5.3-002 с u12 до u18 обновили урфа клиент пхп-шный
https://github.com/k-shym/URFAClient
Контейнер с jessie ругался что openssl якобы не вкомпилен. Здесь на форуме писали что работают только старые версии php. Установили из wheezy гуталиновый 5.4.45-0+deb7u8. При выполнении простейшего скрипта
Код: Выделить всё
<?php
include __DIR__ . '/init.php';
$urfa = URFAClient::init(array(
'login' => 'login',
'password' => 'password',
'address' => '192.168.1.1',
'timeout' => 10,
'log' => TRUE,
'admin' => TRUE,
'protocol' => 'ssl',
'api' => 'xml/api_53-002.xml',
));
-- cut --
Получаем
Код: Выделить всё
% php ./example.php
PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure in /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php on line 108
PHP Notice: fwrite(): send of 1 bytes failed with errno=32 Broken pipe in /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php on line 214
PHP Notice: fwrite(): send of 1 bytes failed with errno=32 Broken pipe in /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php on line 215
PHP Notice: fwrite(): send of 2 bytes failed with errno=32 Broken pipe in /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php on line 216
PHP Notice: fwrite(): send of 2 bytes failed with errno=32 Broken pipe in /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php on line 220
PHP Notice: fwrite(): send of 2 bytes failed with errno=32 Broken pipe in /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php on line 221
PHP Notice: fwrite(): send of 4 bytes failed with errno=32 Broken pipe in /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php on line 222
Array
(
[0] => 2017.05.15 14:51:59 ERROR: rpcf_add_user_new( Array ( [login] => test5000 [password] => test5000 ) ): Error calling function rpcf_add_user_new
[1] => 2017.05.15 14:51:59 ERROR: rpcf_liburfa_list( Array ( ) ): Error calling function rpcf_liburfa_list
)
На стороне UTM в дебаг логе:
Код: Выделить всё
May 15 14:53:37 Info : 9634500 RPCConn[SSL]<script_server@192.168.241.243>: Access granted to [SSL]<script_server@192.168.241.243> (UID: -101)
May 15 14:53:37 ?Debug : 9634500 RPCConn[SSL]<script_server@192.168.241.243>: SSL type requested: SSLv3(4)
May 15 14:53:37 ?Debug : 9634500 RPCConn[SSL]<script_server@192.168.241.243>: SSL error lines: 34517239040:error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher:/usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/s3_srvr.c:1116:
May 15 14:53:37 ERROR : 9634500 RPCConn[SSL]<script_server@192.168.241.243>: SSL connection failed (4), system errno <0>
May 15 14:53:37 ?Debug : 9634500 RPC2Connection: Session Key <c196195900000000e444c945403a6699> stored for UID -101 from <192.168.241.243>
May 15 14:53:37 ?Debug : 9634500 RPCConn[SSL]<script_server@192.168.241.243>: SSL cleared
May 15 14:53:37 ?Debug : 9634500 ModTop: connection <6> closed
May 15 14:53:37 ?Debug : 9634500 RPCConn[SSL]<script_server@192.168.241.243>: Session closed...
Афтор сообщает о поддержке tls
Добавлена поддержка протокола TLSv1 (доступно с версии UTM-5.3-002-update16)
Но и замена алго на tls оптимизма не добавляют:
На стороне сервера:
Код: Выделить всё
% php ./example.php
PHP Fatal error: Uncaught exception 'Exception' with message 'Error code 0' in /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php:175
Stack trace:
#0 /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php(83): URFAClient_Connection->read(Object(URFAClient_Packet))
#1 /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php(64): URFAClient_Connection->_auth('script_server', 'superstrongpass...', true, 'tls')
#2 /opt/scripts/billing/urfa-new/classes/URFAClient.php(59): URFAClient_Connection->__construct(Array)
#3 /opt/scripts/billing/urfa-new/example.php(14): URFAClient::init(Array)
#4 {main}
thrown in /opt/scripts/billing/urfa-new/classes/URFAClient/Connection.php on line 175
На стороне утм:
Код: Выделить всё
May 15 15:01:52 Info : 9635400 RPC2Connection: Connection from: [192.168.241.243]:53471 new Session Key <b0981959000000001322747389861baa>
May 15 15:01:52 ERROR : 9635400 RPCConn: Unsupported SSL type <6>
May 15 15:01:52 ?Debug : 9635400 RPCConn: SSL cleared
May 15 15:01:52 Info : 9635400 ModTop: connection <-1> not found
May 15 15:01:52 ?Debug : 9635400 RPCConn: Session closed...
Кому-то вообще удавалось завести php-урфу на 5.3.002-u18?