「curl:(56)SSL read:errno -5961」エラーの根本的な原因


9

私はいくつかのSSLの失敗を評価していてcurl、失敗したサイトの1つを使用するとcurl: (56) SSL read: errno -5961、ただし、そのエラーに対するGoogleのクエリでは、opensslの失敗の理由は表示されませんでした。

質問:カールが失敗した場合、どういう意味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

この問題の根本的な原因は、レイヤ2 MTUの不一致でした。これにより、opensslソケットがcurlトランザクションの途中でタイムアウトになりました。レイヤー2トンネルの一方の側では通過できないため、完全なMTUサイズのパケット(つまり、1500バイトのIPペイロード)が失敗しました。

このエラーが表示される他の人にはMTUの不一致はないかもしれませんが、SSLセッションがを通過する途中でタイムアウトになる原因である可能性がありcurlます。


問題をどのように修正すればよいですか。ありがとうございました。

@jngshl、私はMTUの不一致があることに気づきました(私はtracepathコマンドを使用して発見しました)。次に、VLAN全体でMTUを一致させました。
マイクペニントン2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.