Основная причина ошибок «curl: (56) SSL read: errno -5961»

9

Я оценивал некоторые ошибки SSL и заметил, что когда я использую curlодин из неисправных сайтов, я получаю curl: (56) SSL read: errno -5961; однако, мои запросы Google на эту ошибку не показали причину сбоя openssl.

Вопрос : Что это значит, когда curl не удается curl: (56) SSL read: errno -5961?


Я в том числе полный curlниже ...

[mpenning@mpenning-lnx ~]$ curl -vk https://192.0.2.168/
* About to connect() to 192.0.2.168 port 443 (#0)
*   Trying 192.0.2.168... connected
* Connected to 192.0.2.168 (192.0.2.168) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* skipping SSL peer certificate verification
* SSL connection using TLS_RSA_WITH_AES_256_CBC_SHA
* Server certificate:
*       subject: CN=foo-console,L=New York,OU=IT Infrastructure,O=Sesame Street
*       start date: Aug 21 23:36:51 2013 GMT
*       expire date: Aug 21 23:36:51 2015 GMT
*       common name: foo-console
*       issuer: CN=foo-console,L=New York,OU=IT Infrastructure,O=Sesame Street
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 192.0.2.168
> Accept: */*
>
< HTTP/1.1 200 OK
* SSL read: errno -5961
* Closing connection #0
curl: (56) SSL read: errno -5961
[mpenning@mpenning-lnx ~]$

ПРИМЕЧАНИЕ :

Я отвечаю на свой вопрос в надежде помочь будущим гуглерам.

Майк Пеннингтон
источник

Ответы:

7

Основной причиной проблемы стало несоответствие MTU уровня 2, из-за которого сокет openssl тайм-аут частично проходил через транзакцию curl. Полные пакеты размером с MTU (т.е. 1500-байтовые полезные нагрузки IP) не удалось, потому что одна сторона туннеля уровня 2 не пропустила бы их.

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

Майк Пеннингтон
источник
Могу ли я узнать, как вы решите свою проблему? Спасибо.
@jngshl, я заметил, что было несоответствие MTU (которое я обнаружил с помощью tracepathкоманды ). Тогда я просто сделал матч MTU по всему Vlan.
Майк Пеннингтон