2016-11-12 71 views
0

curlを使用してイメージをダウンロードしています。TLS経由でダウンロードしたときにXPでエラーが発生する

(35)SCHANNEL:win7の上では、それがメッセージを与えるXP上ではなく、作品次のInitializeSecurityContextのに失敗しました:SEC_E_ILLEGAL_MESSAGE (0x80090326) - 致命的なSSL/TLSアラートが を受信したときにこのエラーは通常発生する(例えばハンドシェイクに失敗しました) 。詳細はWindowsシステムでもご利用いただけます tログ。

私はインターネット上の利用可能なすべての情報を読み、Windowx XP TLS API関数のエラーに関連していることを知りました。実装にバグがあるはずです。 Google Chromeはどのようにこのリソースにアクセスできますか?それは独自のTLS関数を使用するか、Windows APIを使用してTLSネゴシエーションを行いますか?ここで は一例です:のWindows XP上のTLSスタックは非常に古く、他のものTLS 1.2またはSNI間でサポートしていません

curl -L -o "sub.jpg" "https://icdn.lenta.ru/images/2016/11/12/13/20161112133708253/pic_b3e542f41dea3569d80375712d111d6d.jpg" 

答えて

1

、ECDHEとDHEのために非常に限定的なサポートをサポートしていません。与えられたエラーメッセージcurlはこのスタック(schannel)を使用します。あなたはおそらくネイティブTLSスタックSChannelを使用しているXPでIEと同じエラーを取得します。実際には、SSLLabs reportはXP上のIE8で問題を指摘しています。このレポートからは、サイトのサポートを暗号化することもできます。これをciphers offered by IE8/XPと、またおそらくcurl/SChannelと比較すると、重複がない、つまり共有された暗号が見つかりません。

これとは逆に、FirefoxとChromeは両方ともネイティブTLSスタックを使用せず、代わりに最新の機能を提供する独自の(NSS)を使用します。これはなぜこれらのサイトで動作するのかを説明します。

+0

Steffenが答えに感謝します。私はこのようなことを疑っていた。 curlをopensslバックエンドで再コンパイルします。 – zulunation

関連する問題