Is there a way to specify curl to use a specific TLS version? Like 1.1 or 1.2? I can see only sslv3 and tlsv1 options in command help. I took latest src and compiled it with openssl 1.0.1e. Still dont see a direct option in help. Is there any other way to set it?

  • 2
    I don't see any options for setting minor TLS version either. Also see this thread: "That's because, when libcurl is configured to use TLSv1, it will automatically use the highest version number supported by your TLS library, and downgrade to TLS 1.0 if the server doesn't support 1.1 or 1.2. There's no separate option here because, until a serious problem is found in 1.0, there doesn't need to be a separate option." – Karan Jun 12 '13 at 18:07

Since version 7.34.0, Curl has options --tlsv1.0, --tlsv1.1 and --tlsv1.2 for this purpose.

The manpage says

-1, --tlsv1

(SSL) Forces curl to use TLS version 1.x when negotiating with a remote TLS server. You can use options --tlsv1.0, --tlsv1.1, and --tlsv1.2 to control the TLS version more precisely (if the SSL backend in use supports such a level of control).



(SSL) Forces curl to use TLS version 1.2 when negotiating with a remote TLS server. (Added in 7.34.0)


Additionally to --tlsvX.Y/--sslvZ, which put a hard limit to what protocols curl would choose, you may use --tls-max x.y to softly control protocol negotiation.


Take a look at the --cipher option see manpage and OpenSSL docs. You should be able to provide a cipher list that will force certain versions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.