Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ head:
content: TLS Settings — Cloudflare for SaaS
---

import { AvailableNotifications, Details, Render } from "~/components";
import { AvailableNotifications, Details, Render, APIRequest } from "~/components";

[Mutual TLS (mTLS)](https://www.cloudflare.com/learning/access-management/what-is-mutual-tls/) adds an extra layer of protection to application connections by validating certificates on the server and the client. When building a SaaS application, you may want to enforce mTLS to protect sensitive endpoints related to payment processing, database updates, and more.

[Minimum TLS Version](/ssl/edge-certificates/additional-options/minimum-tls/) allows you to choose a cryptographic standard per custom hostname. Cloudflare recommends TLS 1.2 to comply with the Payment Card Industry (PCI) Security Standards Council.
[Minimum TLS Version](#minimum-tls-version) only allows HTTPS connections from visitors that support the selected TLS protocol version or newer. Cloudflare recommends TLS 1.2 to comply with the Payment Card Industry (PCI) Security Standards Council. As a SaaS provider, you can control the Minimum TLS version for your zone as a whole, as well as for individual custom hostnames.

[Cipher suites](/ssl/edge-certificates/additional-options/cipher-suites/) are a combination of ciphers used to negotiate security settings during the [SSL/TLS handshake](https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/). As a SaaS provider, you can [specify configurations for cipher suites](#cipher-suites) on your zone as a whole and cipher suites on individual custom hostnames via the API.
[Cipher suites](#cipher-suites) are a combination of ciphers used to negotiate security settings during the [SSL/TLS handshake](https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/). As a SaaS provider, you can specify configurations for cipher suites on your zone as a whole and cipher suites on individual custom hostnames via the API.

:::caution
When you [issue a custom hostname certificate](/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/issue-and-validate/) with wildcards enabled, any cipher suites or Minimum TLS settings applied to that hostname will only apply to the direct hostname.
Expand All @@ -27,25 +27,94 @@ However, if you want to update the Minimum TLS settings for all wildcard hostnam
Once you have [added a custom hostname](/cloudflare-for-platforms/cloudflare-for-saas/start/getting-started/), you can enable mTLS by using Cloudflare Access. Go to [Cloudflare Zero Trust](https://one.dash.cloudflare.com/) and [add mTLS authentication](/cloudflare-one/identity/devices/access-integrations/mutual-tls-authentication/) with a few clicks.

:::note

Currently, you cannot add mTLS policies for custom hostnames using [API Shield](/api-shield/security/mtls/).
:::

## Minimum TLS Version

:::note
While TLS 1.3 is the most recent and secure version, it is not supported by some older devices. Refer to Cloudflare's recommendations when [deciding what version to use](/ssl/reference/protocols/#decide-which-version-to-use).
:::

## Enable Minimum TLS Version
### Scope

1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com) and navigate to your account and website.
Minimum TLS version exists both as a [zone-level setting](/ssl/edge-certificates/additional-options/minimum-tls/) (under **Edge certificates** > **Minimum TLS Version**) and as a custom hostname setting. What this implies is:

2. Select **SSL/TLS** > **Custom Hostnames**.
- For custom hostnames created via API, it is possible not to explicitly define a value for `min_tls_version`. When that is the case, whatever value is defined as your zone's minimum TLS version will be applied. To confirm whether a given custom hostname has a specific minimum TLS version set, use the following API call.

3. Find the hostname to which you want to apply Minimum TLS Version. Select **Edit**.
<Details header="Check custom hostname settings TLS settings">

4. Choose the desired TLS version under **Minimum TLS Version** and click **Save**.
<APIRequest
path="/zones/{zone_id}/custom_hostnames/{custom_hostname_id}"
method="GET"
/>

:::note
```json title="Response example" collapse={5-16, 21-40} ""settings": {},"
"success": true,
"result": {
"id": "<CUSTOM_HOSTNAME_ID>",
"ssl": {
"id": "<CERTIFICATE_ID>",
"bundle_method": "ubiquitous",
"certificate_authority": "<CERTIFICATE_AUTHORITY>",
"custom_certificate": "",
"custom_csr_id": "",
"custom_key": "",
"expires_on": "",
"hosts": [
"app.example.com",
"*.app.example.com"
],
"issuer": "",
"method": "http",
"settings": {},
"signature": "SHA256WithRSA",
"type": "dv",
"uploaded_on": "2020-02-06T18:11:23.531995Z",
"validation_errors": [
{
"message": "SERVFAIL looking up CAA for app.example.com"
}
],
"validation_records": [
{
"emails": [
"[email protected]",
"[email protected]"
],
"http_body": "ca3-574923932a82475cb8592200f1a2a23d",
"http_url": "http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt",
"txt_name": "_acme-challenge.app.example.com",
"txt_value": "810b7d5f01154524b961ba0cd578acc2"
}
],
"wildcard": false
},
}
```

While TLS 1.3 is the most recent and secure version, it is not supported by some older devices. Refer to Cloudflare's recommendations when [deciding what version to use](/ssl/reference/protocols/#decide-which-version-to-use).
:::
</Details>

- Whenever you make changes to a custom hostname via dashboard, the value that is set for Minimum TLS version will apply. If you have a scenario as explained in the bullet above, the dashboard change will override the zone-level configuration that was being applied.

- For custom hostnames with wildcards enabled, the direct custom hostname you create (for example, `saas-customer.test`) will use the hostname-specific setting, while the others (`sub1.saas-customer.test`, `sub2.saas-customer.test`, etc) will default to the zone-level setting.

### Setup

<Details header="Minimum TLS version for your zone">

Refer to [Minimum TLS version - SSL/TLS](/ssl/edge-certificates/additional-options/minimum-tls/#zone-level).

</Details>

<Details header="Minimum TLS version for custom hostname">

1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com) and select your account and website.
2. Go to **SSL/TLS** > **Custom Hostnames**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just checking that we don't have a button for this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not yet. Zone-level.

3. Find the hostname to which you want to apply Minimum TLS Version. Select **Edit**.
4. Choose the desired TLS version under **Minimum TLS Version** and select **Save**.

</Details>

## Cipher suites

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@ In the following example, the minimum TLS version for a specific hostname will b
}}
/>

### Cloudflare for SaaS

If you are a SaaS provider looking to configure minimum TLS version for your custom hostnames, refer to the Cloudflare for SaaS [TLS management](/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/enforce-mtls/#minimum-tls-version).


## Test supported TLS versions

To test supported TLS versions, attempt a request to your website or application while specifying a TLS version.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
When you create a custom hostname:

* If you issue a custom hostname certificate with wildcards enabled, you cannot customize TLS settings for these wildcard hostnames.
* If you do not specify the **Minimum TLS Version**, it defaults to 1.0, not the zone's Minimum TLS Version. You can still edit this setting after creation.
* If you do not specify the **Minimum TLS Version**, it defaults to the zone's Minimum TLS Version. You can still [edit this setting](/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/enforce-mtls/#minimum-tls-version) after creation.


:::
Loading