wget TLSv1 は TLSv1_2 と同じように動作します。

wget TLSv1 は TLSv1_2 と同じように動作します。

curl --tlsv1.0比較のためにWiresharkを使用しました。--tlsv1.2

サーバーハンドシェイクは、それをサポートするサーバーに対して従順にTLSv1.0を使用します(サポートしていないことを確認することが重要です)。

wget url --no-check-certificate --secure-protocol=TLSv1 behaves the same as --secure-protocol=TLSv1_2: the handshake uses TLS1_2 every time.

明らかにそうではありません--secure-protocol=TLS1_0。 wgetが1_2の代わりに1_0に従うようにするにはどうすればよいですか?

wget: --secure-protocol: Invalid value ‘TLSv1_0’

GNU Wget 1.17.1はcygwinに基づいて構築されました。

ベストアンサー1

ソースコードを読むと可能性がわかります。 この作品あなたが望むようです:

case secure_protocol_tlsv1:
  err = gnutls_priority_set_direct (session, "NORMAL:-VERS-SSL3.0", NULL);
  break;

case secure_protocol_tlsv1_1:
  err = gnutls_priority_set_direct (session, "NORMAL:-VERS-SSL3.0:-VERS-TLS1.0", NULL);
  break;

そのうち(参照初期化プログラム)次のようになります"tlsv1_1"

static bool
cmd_spec_secure_protocol (const char *com, const char *val, void *place)
{
  static const struct decode_item choices[] = {
    { "auto", secure_protocol_auto },
    { "sslv2", secure_protocol_sslv2 },
    { "sslv3", secure_protocol_sslv3 },
    { "tlsv1", secure_protocol_tlsv1 },
    { "tlsv1_1", secure_protocol_tlsv1_1 },
    { "tlsv1_2", secure_protocol_tlsv1_2 },
    { "pfs", secure_protocol_pfs },
  };
  int ok = decode_string (val, choices, countof (choices), place);
  if (!ok)
    fprintf (stderr, _("%s: %s: Invalid value %s.\n"), exec_name, com, quote (val));
  return ok;
}

おすすめ記事