An Azure service that provides a platform-managed, scalable, and highly available application delivery controller as a service.
Hello @ Marcel Zeller,
Thanks for reaching out to Microsoft Q&A.
it looks like you’ve run into the “SslProfile must specify either SslPolicy or TrustedClientCertificates” error whenever you try to patch your App Gateway in passthrough mode.
You're not doing anything wrong. This is a known current limitation with mTLS passthrough mode on Application Gateway. The feature works perfectly when first deployed via the ARM template (as you did), but the Azure Portal, PowerShell, and CLI don't fully support the verifyClientAuthMode: "Passthrough" setting yet. That's why any update triggers the "SslProfile must specify either SslPolicy or TrustedClientCertificates" error. Adding either of those properties unfortunately switches the gateway out of true passthrough.
The intended (and fully supported) way to work with passthrough today is to manage the Application Gateway as infrastructure-as-code using ARM templates (or Bicep) with API version 2025-03-01. Any future changes scaling, rules, backend updates, etc. should be made by editing and redeploying the template in incremental mode. This keeps your passthrough configuration intact.
The Azure Portal, PowerShell, and CLI don't yet understand the verifyClientAuthMode: "Passthrough" setting on the SSL profile, so any update attempt from those tools triggers the validation error you're seeing: "SslProfile must specify either SslPolicy or TrustedClientCertificates."
Adding a trusted client certificate or SSL policy would switch it out of true passthrough, which is why those options break your current behavior.
The supported (and simplest) way to make changes going forward is to update the gateway using an ARM template (or Bicep). Here's how:
- Export your current Application Gateway config from the portal (or via CLI: az resource export ...).
- Keep the sslProfiles section exactly as it is today — it should look like this (no trustedClientCertificates and no sslPolicy):
Make whatever other changes you need (rules, backends, SKU scale, etc.), ensure the top-level apiVersion is still 2025-03-01, then redeploy in Incremental mode."properties": { "clientAuthConfiguration": { "VerifyClientCertIssuerDN": false, "VerifyClientRevocation": "None", "VerifyClientAuthMode": "Passthrough" } }
This will succeed and keep your passthrough working perfectly.
ARM/Bicep is the official path for both creation and updates.
Reference Documents to use ARM templates:
https://learn.microsoft.com/en-us/azure/application-gateway/mutual-authentication-arm-template
Kindly let us know if the above helps or you need further assistance on this issue.
Please "Accept Answer" and "upvote" it. if the information helped you. This will help us and others in the community as well.