Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
CURL.SetOptionSSLVersion
Sets which version of SSL/TLS to attempt to use.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
CURL | 2.5 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example |
---|---|---|
curl | The CURL session handle. | $curl |
Value | Pass number from 0 to 7. | 0 |
Result
Returns "OK" on success.
Description
Sets which version of SSL/TLS to attempt to use.The SSL and TLS versions have typically developed from the most insecure version to be more and more secure in this order through history: SSL v2, SSLv3, TLS v1.0, TLS v1.1, TLS v1.2 and the most recent TLS v1.3.
Use one of the available defines for this purpose. The available options are:
Default | 0 | The default acceptable version range. The minimum acceptable version is by default TLS v1.0 since 7.39.0 (unless the TLS library has a stricter rule). |
TLSv1 | 1 | TLS v1.0 or later |
SSLv2 | 2 | SSL v2 (but not SSLv3) |
SSLv3 | 3 | SSL v3 (but not SSLv2) |
TLSv1.0 | 4 | TLS v1.0 or later (Added in 7.34.0) |
TLSv1.1 | 5 | TLS v1.1 or later (Added in 7.34.0) |
TLSv1.2 | 6 | TLS v1.2 or later (Added in 7.34.0) |
TLSv1.3 | 7 | TLS v1.3 or later (Added in 7.52.0) |
See also kSSLVersion* constants.
The maximum TLS version can be set by using one of the CURL_SSLVERSION_MAX_ macros below. It is also possible to OR one of the CURL_SSLVERSION_ macros with one of the CURL_SSLVERSION_MAX_ macros.
Default | 65536 | The flag defines the maximum supported TLS version by libcurl, or the default value from the SSL library is used. libcurl will use a sensible default maximum, which was TLS v1.2 up to before 7.61.0 and is TLS v1.3 since then - assuming the TLS library support it. (Added in 7.54.0) |
Max TLSv1.0 | 262144 | The flag defines maximum supported TLS version as TLS v1.0. (Added in 7.54.0) |
Max TLSv1.1 | 327680 | The flag defines maximum supported TLS version as TLS v1.1. (Added in 7.54.0) |
Max TLSv1.2 | 393216 | The flag defines maximum supported TLS version as TLS v1.2. (Added in 7.54.0) |
Max TLSv1.3 | 458752 | The flag defines maximum supported TLS version as TLS v1.3. (Added in 7.54.0) |
Please note that MBS Plugin does support TLS v1.3 since end of 2018.
See also SSLVERSION option in CURL manual.
Examples
SMTP via SSL without TLS:
$r = MBS( "CURL.SetOptionSSLVersion"; $curl; 3 )
$r = MBS( "CURL.SetOptionPort"; $curl; 25 )
Set to use TLSv1.2:
Set Variable [$r; MBS( "CURL.SetOptionUseSSL"; $curl; 3 ) // encryption required ]
Set Variable [$r; MBS( "CURL.SetOptionSSLVersion"; $curl; 6 ) // TLS v1.2 ]
Do FTPS by using FTP and upgrade to TLS:
# Start new session
Set Variable [ $curl ; Value: MBS("CURL.New") ]
# Set URL to load (HTTP, HTTPS, FTP, FTPS, SFTP, etc.)
Set Variable [ $result ; Value: MBS("CURL.SetOptionURL"; $curl; "ftp://ftp.christians-software.de/") ]
Set Variable [ $result ; Value: MBS("CURL.SetOptionUserName"; $curl; "12144-test") ]
Set Variable [ $result ; Value: MBS("CURL.SetOptionPassword"; $curl; "qr\"8km3%Eu\"7") ]
Set Variable [ $result ; Value: MBS("CURL.SetOptionConnectionTimeout"; $curl; 10) ]
Set Variable [ $result ; Value: MBS("CURL.SetOptionSSLVersion"; $curl; 1) // want TLS v1.0 or better ]
Set Variable [ $result ; Value: MBS("CURL.SetOptionUseSSL"; $curl; 3) // require SSL ]
# RUN now
Set Field [ CURL Test::Result ; MBS("CURL.Perform"; $curl) ]
# Check result
Set Field [ CURL Test::Text ; MBS("CURL.GetResultAsText"; $curl; "UTF8") ]
Set Field [ CURL Test::debug ; MBS("CURL.GetDebugMessages"; $curl) ]
# Cleanup
Set Variable [ $result ; Value: MBS("CURL.Release"; $curl) ]
Setup for IMAP with Google GMail:
Set Variable [ $curl ; Value: MBS("CURL.New") ]
Set Variable [ $r ; Value: MBS("CURL.SetOptionPort"; $curl; 993) // IMAP SSL port ]
Set Variable [ $r ; Value: MBS("CURL.SetOptionUseSSL"; $curl; 3) // require SSL ]
Set Variable [ $r ; Value: MBS("CURL.SetOptionSSLVersion"; $curl; 6) // TLSv1.2 ]
Set Variable [ $r ; Value: MBS("CURL.SetOptionURL"; $curl; "imaps://imap.gmail.com/INBOX") ]
Set Variable [ $r ; Value: MBS("CURL.SetOptionUserName"; $curl; $user) ]
Set Variable [ $r ; Value: MBS("CURL.SetOptionPassword"; $curl; $pass) ]
Set TLS 1.2 as minimum and maximum to enfore that version:
Set Variable [ $result ; Value: MBS("CURL.SetOptionSSLVersion"; $curl; 393216 + 6) ]
See also
- CURL.SetOptionHTTPVersion
- CURL.SetOptionSSLCertType
- CURL.SetOptionSSLCipherList
- CURL.SetOptionSSLKeyBlob
- CURL.SetOptionSSLOptions
- CURL.SetOptionSSLVerifyHost
- CURL.SetOptionURL
- CURL.SetOptionUseSSL
- SendMail.PrepareCURL
- SendMail.SetSMTPServer
Example Databases
- CURL/Email/Build and send Email
- CURL/Email/Build and send HTML Email with inline graphics
- CURL/Email/IMAP Email List
- CURL/Email/IMAP Email Upload
- CURL/Email/IMAP Email
- CURL/Email/List IMAP folders
- CURL/Email/Office 365 oAuth SMTP
- CURL/FTP/CURL FTP Directory Listing
- CURL/FTP/CURL FTP Download all Files in Directory
- CURL/FTP/CURL FTP Upload File
Blog Entries
- SFTP Upload with temporary file
- SMTP with OAuth for Office 365 in FileMaker
- Sending email with a huge custom function
- GMail for emails with MBS Plugin
- Using Apple's Global Service Exchange web service in FileMaker
- Email Script for FileMaker
- Upload email to Sent folder via IMAP
- Using Apple's Global Service Exchange web service in FileMaker
- Sending emails in FileMaker with MBS Plugin
Created 18th August 2014, last changed 20th November 2023
CURL.SetOptionSSLVerifyStatus - CURL.SetOptionServerResponseTimeout
