web-dev-qa-db-ja.com

curlを使用する場合のマイナーTLSバージョンの指定

特定のTLSバージョンを使用するようにcurlを指定する方法はありますか? 1.1や1.2は好きですか?コマンドヘルプにsslv3およびtlsv1オプションのみが表示されます。最新のsrcを取得し、openssl 1.0.1eでコンパイルしました。それでもヘルプに直接オプションが表示されない。それを設定する他の方法はありますか?

21
vpram86

バージョン7.34.0以降、Curlにはこの目的のためのオプション--tlsv1.0--tlsv1.1および--tlsv1.2があります。

manpage は言った

-1、-tlsv1

(SSL)リモートTLSサーバーとのネゴシエーション時にcurlがTLSバージョン1.xを使用するように強制します。オプション--tlsv1.0、-tlsv1.1、および--tlsv1.2を使用して、TLSバージョンをより正確に制御できます(使用中のSSLバックエンドがそのようなレベルの制御をサポートしている場合)。

...

--tlsv1.2

(SSL)リモートTLSサーバーとのネゴシエーション時にcurlがTLSバージョン1.2を使用するように強制します。 (7.34.0で追加)


バージョン7.52.0が導入されました--tlsv1.3

バージョン7.54.0以降、動作が変更されました。 nelsondaの回答 を参照してください。使用する正確なバージョンを指定するには、--tls-maxの値も指定する必要があります

15
RedGrittyBrick

Curlが選択するプロトコルにハードリミットを設定する--tlsvX.Y/--sslvZに加えて、--tls-max x.yを使用してプロトコルネゴシエーションをソフトに制御できます。

3
AnrDaemon

Curlの動作が変更されました!

7.54.0より前のバージョンでは、RedGrittyBrickの答えは正しいままです。 7.54.0以降のバージョンのcurlでは、オプション--tlsv1.0--tlsv1.1および--tlsv1.2 curlが使用するTLSのminimumバージョンを設定します。最大値を指定するには、--tls-max <VERSION>

manpage から:

--tls-max

(SSL)VERSIONは、サポートされる最大のTLSバージョンを定義します。最小許容バージョンは、tlsv1.0、tlsv1.1、tlsv1.2、またはtlsv1.3によって設定されます。

3
nelsonda

--cipherオプション manpageを参照 および OpenSSL docs をご覧ください。特定のバージョンを強制する暗号リストを提供できるはずです。

0
BowlesCR