You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/application-gateway/mutual-authentication-troubleshooting.md
+56-31Lines changed: 56 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ services: application-gateway
5
5
author: mbender-ms
6
6
ms.service: azure-application-gateway
7
7
ms.topic: troubleshooting
8
-
ms.date: 02/18/2022
8
+
ms.date: 07/09/2025
9
9
ms.author: mbender
10
10
# Customer intent: As an application administrator, I want to troubleshoot mutual authentication issues on the Application Gateway, so that I can ensure secure communication and resolve errors efficiently.
11
11
---
@@ -16,17 +16,19 @@ Learn how to troubleshoot problems with mutual authentication when using Applica
16
16
17
17
## Overview
18
18
19
-
After configuring mutual authentication on an Application Gateway, there can be a number of errors that appear when trying to use mutual authentication. Some common causes for errors include:
19
+
For mutual authentication on an Application Gateway, various errors can occur during client certificate validation after configuring. Common causes for these errors include:
20
20
21
-
* Uploaded a certificate or certificate chain without a root CA certificate
22
-
* Uploaded a certificate chain with multiple root CA certificates
23
-
* Uploaded a certificate chain that only contained a leaf certificate without a CA certificate
24
-
* Validation errors due to issuer DN mismatch
21
+
* Upload a certificate or certificate chain without a root CA certificate
22
+
* Upload a certificate chain with multiple root CA certificates
23
+
* Upload a certificate chain that contains only a leaf certificate without a CA certificate
24
+
* Certificate validation errors due to issuer Distinguished Name (DN) mismatch
25
+
* Missing or incorrect Extended Key Usage (EKU) attributes
25
26
26
-
We'll go through different scenarios that you might run into and how to troubleshoot those scenarios. We'll then address error codes and explain likely causes for certain error codes you might be seeing with mutual authentication. All client certificate authentication failures should result in an HTTP 400 error code.
27
+
This guide covers different scenarios you might encounter and provides troubleshooting steps for each. We also address specific error codes and explain their likely causes in mutual authentication scenarios. All client certificate authentication failures result in an HTTP 400 (Bad Request) status code being returned to the client.
There are a few scenarios that you might be facing when trying to configure mutual authentication. We'll walk through how to troubleshoot some of the most common pitfalls.
30
+
31
+
The following scenarios address common configuration issues that can occur when setting up mutual authentication. Each scenario includes the problem description and recommended solution.
30
32
31
33
### Self-signed certificate
32
34
@@ -36,65 +38,81 @@ The client certificate you uploaded is a self-signed certificate and is resultin
36
38
37
39
#### Solution
38
40
39
-
Double check that the self-signed certificate that you're using has the extension *BasicConstraintsOid* = "2.5.29.19" which indicates the subject can act as a CA. This will ensure that the certificate used is a CA certificate. For more information about how to generate self-signed client certificates, check out [trusted client certificates](./mutual-authentication-certificate-management.md).
41
+
Verify that the self-signed certificate you're using includes the *BasicConstraintsOid* extension with value "2.5.29.19" and the CA flag set to TRUE. This extension indicates that the certificate subject can act as a Certificate Authority.
42
+
43
+
To check the certificate properties, you can use the following OpenSSL command:
44
+
```bash
45
+
openssl x509 -in certificate.pem -text -noout
46
+
```
47
+
48
+
Look for the "Basic Constraints" section in the output, which should show "CA:TRUE" for a valid CA certificate. For detailed guidance on generating self-signed client certificates, see [trusted client certificates](./mutual-authentication-certificate-management.md).
You might have been able to configure mutual authentication without any problems but you're running into problems when sending requests to your Application Gateway. We address some common problems and solutions in the following section. You can find the *sslClientVerify* property in the access logs of your Application Gateway.
52
+
You might be able to configure mutual authentication without any problems but you're running into problems when sending requests to your Application Gateway. We address some common problems and solutions in the following section. You can find the *sslClientVerify* property in the access logs of your Application Gateway.
44
53
45
54
### SslClientVerify is NONE
46
55
47
56
#### Problem
48
57
49
-
The property *sslClientVerify*is appearing as "NONE" in your access logs.
58
+
The *sslClientVerify*property appears as "NONE" in your access logs, indicating that no client certificate was presented during the TLS handshake.
50
59
51
60
#### Solution
52
61
53
-
This is seen when the client doesn't send a client certificate when sending a request to the Application Gateway. This could happen if the client sending the request to the Application Gateway isn't configured correctly to use client certificates. One way to verify that the client authentication setup on Application Gateway is working as expected is through the following OpenSSL command:
62
+
This problem occurs when the client doesn't send a client certificate in the TLS handshake request to the Application Gateway. This problem can happen when:
63
+
- The client application isn't configured to use client certificates
64
+
- The client certificate isn't properly installed or accessible
65
+
- The client doesn't trust the Application Gateway's server certificate
66
+
67
+
To verify that client authentication is configured correctly on Application Gateway, use the following OpenSSL command:
The `-cert` flag is the leaf certificate, the `-key` flag is the client private key file.
73
+
Where:
74
+
-`-cert` specifies the path to the client certificate (leaf certificate)
75
+
-`-key` specifies the path to the client private key file
76
+
-`-verify_return_error` ensures the command fails if certificate verification fails
60
77
61
-
For more information on how to use the OpenSSL `s_client` command, check out their [manual page](https://www.openssl.org/docs/manmaster/man1/openssl-s_client.html).
78
+
For more information on using the OpenSSL `s_client` command, see the [OpenSSL manual page](https://www.openssl.org/docs/manmaster/man1/openssl-s_client.html).
62
79
63
80
### SslClientVerify is FAILED
64
81
65
82
#### Problem
66
83
67
-
The property *sslClientVerify*is appearing as "FAILED" in your access logs.
84
+
The *sslClientVerify*property appears as "FAILED" in your access logs, indicating that the client certificate validation failed during the TLS handshake.
68
85
69
86
#### Solution
70
87
71
-
There are a number of potential causes for failures in the access logs. Below is a list of common causes for failure:
72
-
***Unable to get issuer certificate:** The issuer certificate of the client certificate couldn't be found. This normally means the trusted client CA certificate chain is not complete on the Application Gateway. Validate that the trusted client CA certificate chain uploaded on the Application Gateway is complete.
73
-
***Unable to get local issuer certificate:** Similar to unable to get issuer certificate, the issuer certificate of the client certificate couldn't be found. This normally means the trusted client CA certificate chain is not complete on the Application Gateway. Validate that the trusted client CA certificate chain uploaded on the Application Gateway is complete.
74
-
***Unable to verify the first certificate:** Unable to verify the client certificate. This error occurs specifically when the client presents only the leaf certificate, whose issuer is not trusted. Validate that the trusted client CA certificate chain uploaded on the Application Gateway is complete.
75
-
***Unable to verify the client certificate issuer:** This error occurs when the configuration *VerifyClientCertIssuerDN* is set to true. This typically happens when the Issuer DN of the client certificate doesn't match the *ClientCertificateIssuerDN* extracted from the trusted client CA certificate chain uploaded by the customer. For more information about how Application Gateway extracts the *ClientCertificateIssuerDN*, check out [Application Gateway extracting issuer DN](./mutual-authentication-overview.md#verify-client-certificate-dn). As best practice, make sure you're uploading one certificate chain per file to Application Gateway.
88
+
There are many potential causes for failures in the access logs. Here's a list of common causes for failure:
89
+
***Unable to get issuer certificate:** The issuer certificate of the client certificate couldn't be found. This issue normally means the trusted client CA certificate chain isn't complete on the Application Gateway. Validate that the trusted client CA certificate chain uploaded on the Application Gateway is complete.
90
+
***Unable to get local issuer certificate:** Similar to unable to get issuer certificate, the issuer certificate of the client certificate couldn't be found. This issue normally means the trusted client CA certificate chain isn't complete on the Application Gateway. Validate that the trusted client CA certificate chain uploaded on the Application Gateway is complete.
91
+
***Unable to verify the first certificate:** Unable to verify the client certificate. This error occurs specifically when the client presents only the leaf certificate, whose issuer isn't trusted. Validate that the trusted client CA certificate chain uploaded on the Application Gateway is complete.
92
+
***Unable to verify the client certificate issuer:** This error occurs when the configuration *VerifyClientCertIssuerDN* is set to true. This error typically happens when the Issuer DN of the client certificate doesn't match the *ClientCertificateIssuerDN* extracted from the trusted client CA certificate chain uploaded by the customer. For more information about how Application Gateway extracts the *ClientCertificateIssuerDN*, check out [Application Gateway extracting issuer DN](./mutual-authentication-overview.md#verify-client-certificate-dn). As best practice, make sure you're uploading one certificate chain per file to Application Gateway.
76
93
***Unsupported certificate purpose:** Ensure the client certificate designates Extended Key Usage for Client Authentication ([1.3.6.1.5.5.7.3.2](https://oidref.com/1.3.6.1.5.5.7.3.2)). More details on definition of extended key usage and object identifier for client authentication can be found in [RFC 3280](https://www.rfc-editor.org/rfc/rfc3280) and [RFC 5280](https://www.rfc-editor.org/rfc/rfc5280).
77
94
78
95
For more information on how to extract the entire trusted client CA certificate chain to upload to Application Gateway, see [how to extract trusted client CA certificate chains](./mutual-authentication-certificate-management.md).
79
96
80
97
## Error code troubleshooting
81
-
If you're seeing any of the following error codes, we have a few recommended solutions to help resolve the problem you might be facing.
98
+
99
+
The following error codes appear when configuring mutual authentication. Each error includes the likely cause and recommended solution.
There is certificate data that is missing. The certificate uploaded could have been an empty file without any certificate data.
105
+
The uploaded certificate file is missingcertificate data or contains an empty file without valid certificate content.
88
106
89
107
#### Solution
90
108
91
-
Validate that the certificate file uploaded doesn't have any missing data.
109
+
Verify that the certificate file contains valid certificate data in the correct format (PEM). Use a text editor to confirm that the file contains certificate content between the `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----` delimiters.
There is a private key in the certificate chain. There shouldn't be a private key in the certificate chain.
115
+
There's a private key in the certificate chain. There shouldn't be a private key in the certificate chain.
98
116
99
117
#### Solution
100
118
@@ -104,15 +122,15 @@ Double check the certificate chain that was uploaded and remove the private key
104
122
105
123
#### Cause
106
124
107
-
There are two potential causes behind this error code.
108
-
1. The parsing failed due to the chain not being presented in the right format. Application Gateway expects a certificate chain to be in PEM format and also expects individual certificate data to be delimited.
109
-
2. The parser didn't find anything to parse. The file uploaded could potentially only have had the delimiters but no certificate data.
125
+
There are two potential causes for this error:
126
+
***Parsing failure:** The certificate chain isn't in the correct format. Application Gateway expects certificate chains in PEM format with properly delimited individual certificates.
127
+
***Empty content:**The uploaded file contains only delimiters without actual certificate data between them.
110
128
111
129
#### Solution
112
130
113
-
Depending on the cause of this error, there are two potential solutions.
114
-
*Validate that the certificate chain uploaded was in the right format (PEM) and that the certificate data was properly delimited.
115
-
*Check that the certificate file uploaded contained the certificate data in addition to the delimiters.
131
+
Based on the specific cause, apply one of the following solutions:
132
+
***Format issue:** Ensure the certificate chain is in PEM format with each certificate properly delimited by `-----BEGIN CERTIFICATE-----`and `-----END CERTIFICATE-----` markers. Each certificate should be on separate lines within these delimiters.
133
+
***Missing data:** Verify that the certificate file contains actual certificate data between the delimiters, not just empty delimiters.
@@ -122,7 +140,14 @@ The certificate uploaded only contained a leaf certificate without a CA certific
122
140
123
141
#### Solution
124
142
125
-
Double check the certificate chain that was uploaded contained more than just the leaf certificate. The *BasicConstraintsOid* = "2.5.29.19" extension should be present and indicate the subject can act as a CA.
143
+
Ensure the certificate chain includes at least one CA certificate with the proper *BasicConstraintsOid* extension (OID: 2.5.29.19) where the CA flag is set to TRUE. This extension indicates that the certificate subject can act as a Certificate Authority.
Copy file name to clipboardExpand all lines: articles/cost-management-billing/manage/link-partner-id-power-apps-accounts.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,12 +2,12 @@
2
2
title: Link a partner ID to your Power Platform and Dynamics Customer Insights accounts with your Azure credentials
3
3
description: This article helps Microsoft partners use their Azure credentials to provide customers with services for Microsoft Power Apps, Power Automate, Power BI and Dynamics Customer Insights.
Copy file name to clipboardExpand all lines: articles/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,13 @@
1
1
---
2
2
title: Programmatically create MCA subscriptions across tenants
3
3
description: Learn how to programmatically create an Azure MCA subscription across Microsoft Entra tenants, including necessary steps and considerations.
4
-
author: kendayMS
4
+
author: presharm
5
5
ms.service: cost-management-billing
6
6
ms.subservice: billing
7
7
ms.topic: how-to
8
8
ms.date: 05/29/2025
9
-
ms.reviewer: macyso
10
-
ms.author: macyso
9
+
ms.reviewer: presharm
10
+
ms.author: presharm
11
11
---
12
12
13
13
# Programmatically create MCA subscriptions across Microsoft Entra tenants
Copy file name to clipboardExpand all lines: articles/cost-management-billing/troubleshoot-billing/how-to-create-azure-support-request-ea.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,13 +3,13 @@ title: How to create an Azure support request for an Enterprise Agreement issue
3
3
description: Enterprise Agreement customers who need assistance can use the Azure portal to find self-service solutions and to create and manage support requests.
4
4
ms.topic: troubleshooting
5
5
ms.date: 05/21/2025
6
-
ms.author: macyso
6
+
ms.author: presharm
7
7
author: KennyDay
8
-
ms.reviewer: macyso
8
+
ms.reviewer: presharm
9
9
ms.service: cost-management-billing
10
10
ms.subservice: billing
11
11
ms.custom:
12
-
- build-2025
12
+
- build-2025
13
13
---
14
14
15
15
# Create an Azure support request for an Enterprise Agreement issue
0 commit comments