Transport Layer Security (TLS) secures data traveling between clients and servers. In Azure App Service, TLS 1.2 is configured as the default minimum version for new applications, while TLS 1.3 offers the highest level of security. Older protocols like TLS 1.0 and TLS 1.1 are maintained only for backward compatibility with legacy systems. Administrators can enforce these protocol versions via the Azure Portal or Azure CLI, and they can use Azure Policy to audit compliance across all hosted applications.
To control encryption strength, administrators configure a Minimum TLS Cipher Suite to block weak algorithms. While TLS 1.3 uses fixed cipher suites that cannot be altered, lower protocol versions allow customized cipher controls. Securing a custom domain requires binding a TLS/SSL certificate. Options include free, auto-renewed App Service Managed Certificates, paid App Service Certificates in Azure Key Vault, or a Bring Your Own Certificate (BYOC) option uploaded as a PFX file.
For heightened security, Mutual TLS (mTLS) and End-to-End TLS protect sensitive interfaces like internal APIs by demanding that clients present certificates before a connection is established. Implementing custom certificates or mTLS requires an App Service plan in the Basic tier or higher. Additionally, configurations using optional client certificates may trigger TLS renegotiation, which is incompatible with TLS 1.3 or HTTP 2.0. To bypass this limitation, administrators can configure path exclusions for specific URL paths that do not require certificates.
Manage Certificate Binding and Renewal Processes
Securing custom domains in an App Service involves choosing the right certificate type and binding method. App Service Managed Certificates are free, domain-validated, and automatically renewed by Azure, but they cannot be exported or used with private certificate authorities. In contrast, paid App Service Certificates are stored in Azure Key Vault, support wildcard domains, and can be exported. Binding these certificates to custom domains is done using either SNI SSL, which allows multiple certificates to share a single public IP, or IP-based SSL, which allocates a dedicated IP and requires updating the domain's DNS A record.
Maintaining continuous connectivity depends on proper renewal and synchronization workflows. Certificates imported from Azure Key Vault automatically synchronize every 24 hours. However, when using the BYOC pattern, administrators must manually upload the new PFX file and update the binding before deleting the expired certificate. This specific order of operations prevents the application's inbound IP address from changing during the update.
For client-side validation, mTLS uses Client Certificate Modes to control how client certificates are requested:
- Required: All incoming requests must present a valid client certificate.
- Optional: Clients are prompted but not forced to provide a certificate.
During this process, the platform forwards the client certificate data in the X-ARR-ClientCert header, leaving validation logic to the application code. Troubleshooting binding issues often involves managing renegotiation limits and chain-of-trust validation. Because certificate exclusion paths trigger TLS renegotiation, they limit incoming request sizes to 100 KB and can cause 403 errors. Additionally, validation errors during upload are commonly caused by missing intermediate certificates in the PFX certificate chain.
Implement and Manage SSL/TLS Certificates
Implementing SSL/TLS certificates secures communications by encrypting transit data between clients and App Services. To configure these bindings or enable client certificates, the underlying App Service plan must be scaled to a supporting tier. Free tiers like F1 or D1 do not support these features, requiring a scale-up to at least the B1, B2, or B3 tiers within the Basic, Standard, Premium, or Isolated levels.
When configuring client certificates for mutual authentication, administrators choose from three distinct modes. These modes dictate how the application gateway prompts the client during the handshake. Each option alters how strictly the system enforces identity verification before permitting access:
- Required: Forces all incoming requests to provide a certificate.
- Optional: Prompts clients for a certificate but allows connections without one.
- Optional Interactive User: Prompts the user interactively rather than silently requesting the certificate.
Securing custom domains with HTTPS involves a structured set of operations in the Azure Portal. First, navigate to the web app's custom domains section and select the option to add a binding. Next, select an appropriate certificate, choosing from a free managed certificate, an imported Key Vault certificate, or an uploaded PFX file. Finally, select the TLS/SSL type, opting for SNI SSL to share an IP or IP-based SSL for a dedicated address.
While free managed certificates offer an easy way to secure custom domains, they carry specific limitations. They do not support wildcard domains, cannot be exported, and only support hostnames containing alphanumeric characters, dashes, and periods. To use a custom private certificate instead, administrators must first merge any intermediate certificates into a single file. They must then export the merged file with the private key into a PFX format using tools like OpenSSL before uploading it to the App Service certificate store.