LINUX.ORG.RU

не работает https

 ,


0

1

Установил убунту 18.10, как оказалось нигде не работает https. докопался вот до чего:

openssl s_client -connect www.ubuntu.com:443 -state -nbio
CONNECTED(00000005)
Turned on non blocking io
SSL_connect:before SSL initialization
SSL_connect:SSLv3/TLS write client hello
SSL_connect:error in SSLv3/TLS write client hello
write R BLOCK
дальше висит
на аналогичной убунте (единственно ставилась 18.04 а потом обновлялась до 18.10), в этой же сети все работет:
openssl s_client -connect www.ubuntu.com:443 -state -nbio
CONNECTED(00000005)
Turned on non blocking io
SSL_connect:before SSL initialization
SSL_connect:SSLv3/TLS write client hello
SSL_connect:error in SSLv3/TLS write client hello
write R BLOCK
SSL_connect:SSLv3/TLS write client hello
SSL_connect:SSLv3/TLS read server hello
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
...

сверил /etc/ssl/openssl.cnf одинаков.

подскажите что поковырять чтобы найти причину

Ответ на: комментарий от mky

часть дифа strace:

-connect(5, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("91.189.90.58")}, 16) = 0
-fstat(1, {st_mode=S_IFREG|0644, st_size=16035, ...}) = 0
+connect(5, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("91.189.89.118")}, 16) = 0
+fstat(1, {st_mode=S_IFREG|0644, st_size=16056, ...}) = 0
 ioctl(5, FIONBIO, [1])                  = 0
 select(6, [5], [5], NULL, NULL)         = 1 (out [5])
 write(2, "SSL_connect:before SSL initializ"..., 38SSL_connect:before SSL initialization
 ) = 38
-brk(0x55cd77e29000)                     = 0x55cd77e29000
-brk(0x55cd77e28000)                     = 0x55cd77e28000
-write(5, "\26\3\1\0017\1\0\0013\3\3\363\16lM\245\2331\3621\305Q\245\7C\276\262\232\363\227\2555"..., 316) = 316
+brk(0x559853b49000)                     = 0x559853b49000
+brk(0x559853b48000)                     = 0x559853b48000
+write(5, "\26\3\1\0017\1\0\0013\3\3\317\343\342\4D\23t\355\313\257\n\365\230\10+%\304bO\246\303"..., 316) = 316
 write(2, "SSL_connect:SSLv3/TLS write clie"..., 41SSL_connect:SSLv3/TLS write client hello
 ) = 41
-read(5, 0x55cd77dfcc73, 5)              = -1 EAGAIN (Resource temporarily unavailable)
+read(5, 0x559853b1ce93, 5)              = -1 EAGAIN (Resource temporarily unavailable)
 write(2, "SSL_connect:error in SSLv3/TLS w"..., 50SSL_connect:error in SSLv3/TLS write client hello
 ) = 50
-select(6, [5], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
-strace: Process 6028 detached
+select(6, [5], [], NULL, NULL)          = 1 (in [5])
+read(5, "\26\3\3\0A", 5)                = 5
+read(5, "\2\0\0=\3\3\254\261\275\3771\25\351\3643;\350\30\6\34y\243\237\10S\325e\f?\211\247N"..., 65) = 65
+write(2, "SSL_connect:SSLv3/TLS write clie"..., 41SSL_connect:SSLv3/TLS write client hello
+) = 41
+read(5, "\26\3\3\vy", 5)                = 5
+read(5, "\v\0\vu\0\vr\0\6\2620\202\6\2560\202\5\226\240\3\2\1\2\2\20\10\367r\323<02"..., 2937) = 1373
+read(5, 0x559853b1d3f5, 1564)           = -1 EAGAIN (Resource temporarily unavailable)
+write(2, "SSL_connect:error in SSLv3/TLS r"..., 49SSL_connect:error in SSLv3/TLS read server hello
+) = 49
+read(5, 0x559853b1d3f5, 1564)           = -1 EAGAIN (Resource temporarily unavailable)
+write(2, "SSL_connect:error in SSLv3/TLS r"..., 49SSL_connect:error in SSLv3/TLS read server hello
+) = 49
+read(5, "\0\4\3\0F0D\2 q\373.\313\217\7?4\31\21D\24\5\277\227\5\2\241\177+\3451\353"..., 1564) = 1564
+write(2, "SSL_connect:SSLv3/TLS read serve"..., 40SSL_connect:SSLv3/TLS read server hello
+) = 40

psm666 ()
Ответ на: комментарий от psm666

Как-то стало ещё хуже. Совпадение почти полное: connect(), write(), read(), который даёт EAGAIN. Далее идёт select() и тут различие, в одном случае select() даёт ″1″ и всё продолжается, а в другом ″ERESTARTNOHAND″. И этот код ошибки не должен попадать в userspace и пишут, что это из-за strace и на самом деле там EINTR.

Если сделать вывод strace на экран или в файл, но с временными метками, то:

select(6, [5], [], NULL, NULL) = ? ERESTARTNOHAND

случается сразу или с заметной задержкой после ″write(2,...″ ?

P.S. Это локальная сеть предприятия или провадера? Может у вас там просто не всем машинам разрешён интернет?

mky ★★★★★ ()
Ответ на: комментарий от mky

локальная сеть домашняя. никаких ограничений нет, роутером - nanostation m2.

слил дамп трафика. там где работает - запрос Client Hello версии TLSv1.2. там где не работает - версии TLSv1. пробовал указывать опцию -tls1_2 , не помогает, все равно уходит TLSv1.

и еще одна особенность - ответ от сервера все же прилетает, но вайршарк помечает черным его (TCP Previus segment not captured), и прога естетвенно его не видит.

как сделать чтобы по умолчанию использовался tls v1.2 ?

psm666 ()
Ответ на: комментарий от mky

кажись нашел в чем причина

        RX packets 1866  bytes 398504 (398.5 KB)
        RX errors 570  dropped 0  overruns 0  frame 570
ошибки чтения можно как либо настройками компенсировать ? под виндой вроде все нормально работает

psm666 ()