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/postgresql/single-server/concepts-certificate-rotation.md
+18-18Lines changed: 18 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Certificate rotation for Azure Database for PostgreSQL Single server
3
-
description: Learn about the upcoming changes of root certificate changes that will affect Azure Database for PostgreSQL Single server
3
+
description: Learn about the upcoming changes of root certificate changes that affect Azure Database for PostgreSQL Single server
4
4
ms.service: postgresql
5
5
ms.subservice: single-server
6
6
ms.topic: conceptual
@@ -24,24 +24,24 @@ As per the industry's compliance requirements, CA vendors began revoking CA cert
24
24
25
25
The new certificate is rolled out and in effect starting December, 2022 (12/2022).
26
26
27
-
## What change will be performed starting December 2022 (12/2022)?
27
+
## What change scheduled to be be performed starting December 2022 (12/2022)?
28
28
29
-
Starting December 2022, the [BaltimoreCyberTrustRoot root certificate](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem)will be replaced with a **compliant version** known as [DigiCertGlobalRootG2 root certificate ](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem). If your applications take advantage of **verify-ca** or **verify-full** as value of [**sslmode** parameter](https://www.postgresql.org/docs/current/libpq-ssl.html) in the database client connectivity will need to follow directions below to add new certificates to certificate store to maintain connectivity.
29
+
Starting December 2022, the [BaltimoreCyberTrustRoot root certificate](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem)is replaced with a **compliant version** known as [DigiCertGlobalRootG2 root certificate ](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem). If your applications take advantage of **verify-ca** or **verify-full** as value of [**sslmode** parameter](https://www.postgresql.org/docs/current/libpq-ssl.html) in the database client connectivity need to follow directions to add new certificates to certificate store to maintain connectivity.
30
30
31
31
## Do I need to make any changes on my client to maintain connectivity?
32
32
33
-
There are no code or application changes required on client side. if you follow our certificate update recommendation below, you will still be able to continue to connect as long as **BaltimoreCyberTrustRoot certificate isn't removed** from the combined CA certificate. **We recommend to not remove the BaltimoreCyberTrustRoot from your combined CA certificate until further notice to maintain connectivity.**
33
+
There are no code or application changes required on client side. if you follow our certificate update recommendation below, you'll still be able to continue to connect as long as **BaltimoreCyberTrustRoot certificate isn't removed** from the combined CA certificate. **We recommend to not remove the BaltimoreCyberTrustRoot from your combined CA certificate until further notice to maintain connectivity.**
34
34
35
35
## Do I need to make any changes to client certificates
36
36
37
-
By default, PostgreSQL will not perform any verification of the server certificate. This means that it is still theoretically possible to spoof the server identity (for example by modifying a DNS record or by taking over the server IP address) without the client knowing. In order to prevent any possibility spoofing, SSL certificate verification on the client must be used. Such verification can be set via application client connection string [**ssl mode**](https://www.postgresql.org/docs/13/libpq-ssl.html) value - **verify-ca** or **verify-full**. If these ssl-mode values are chosen you should follow directions in next section.
37
+
By default, PostgreSQL doesn't perform any verification of the server certificate. This means that it's still theoretically possible to spoof the server identity (for example by modifying a DNS record or by taking over the server IP address) without the client knowing. In order to prevent any possibility spoofing, SSL certificate verification on the client must be used. Such verification can be set via application client connection string [**ssl mode**](https://www.postgresql.org/docs/13/libpq-ssl.html) value - **verify-ca** or **verify-full**. If these ssl-mode values are chosen, you should follow directions in next section.
38
38
39
39
### Client Certificate Update Recommendation
40
40
41
41
* Download BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 Root CA from links below:
@@ -80,11 +80,11 @@ By default, PostgreSQL will not perform any verification of the server certifica
80
80
* In future, after the new certificate deployed on the server side, you can change your CA pem file to DigiCertGlobalRootG2.crt.pem.
81
81
82
82
> [!NOTE]
83
-
> Please don't drop or alter **Baltimore certificate** until the cert change is made. We will send a communication once the change is done, after which it is safe for them to drop the Baltimore certificate.
83
+
> Please don't drop or alter **Baltimore certificate** until the cert change is made. We will send a communication once the change is done, after which it's safe for them to drop the Baltimore certificate.
84
84
85
85
## What if we removed the BaltimoreCyberTrustRoot certificate?
86
86
87
-
You will start receiving connectivity errors while connecting to your Azure Database for PostgreSQL server. You will need to configure SSL with [BaltimoreCyberTrustRoot](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) certificate again to maintain connectivity.
87
+
You may start receiving connectivity errors while connecting to your Azure Database for PostgreSQL server. You need to configure SSL with [BaltimoreCyberTrustRoot](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) certificate again to maintain connectivity.
88
88
89
89
## Frequently asked questions
90
90
@@ -103,7 +103,7 @@ You can identify whether your connections verify the root certificate by reviewi
103
103
- If your connection string includes `sslmode=disable`, `sslmode=allow`, `sslmode=prefer`, or `sslmode=require`, you do not need to update certificates.
104
104
- If your connection string doesn't specify sslmode, you don't need to update certificates.
105
105
106
-
If you are using a client that abstracts the connection string away, review the client's documentation to understand whether it verifies certificates. To understand PostgreSQL sslmode review the [SSL mode descriptions](https://www.postgresql.org/docs/11/libpq-ssl.html#ssl-mode-descriptions) in PostgreSQL documentation.
106
+
If you are using a client that abstracts the connection string away, review the client's documentation to understand whether it verifies certificates. To understand PostgreSQL sslmode, review the [SSL mode descriptions](https://www.postgresql.org/docs/11/libpq-ssl.html#ssl-mode-descriptions) in PostgreSQL documentation.
107
107
108
108
### 4. What is the impact if using App Service with Azure Database for PostgreSQL?
109
109
@@ -113,28 +113,28 @@ For Azure app services, connecting to Azure Database for PostgreSQL, we can have
113
113
114
114
### 5. What is the impact if using Azure Kubernetes Services (AKS) with Azure Database for PostgreSQL?
115
115
116
-
If you are trying to connect to the Azure Database for PostgreSQL using Azure Kubernetes Services (AKS), it is similar to access from a dedicated customers host environment. Refer to the steps [here](../../aks/ingress-own-tls.md).
116
+
If you are trying to connect to the Azure Database for PostgreSQL using Azure Kubernetes Services (AKS), it's similar to access from a dedicated customers host environment. Refer to the steps [here](../../aks/ingress-own-tls.md).
117
117
118
118
### 6. What is the impact if using Azure Data Factory to connect to Azure Database for PostgreSQL?
119
119
120
120
For connector using Azure Integration Runtime, the connector leverage certificates in the Windows Certificate Store in the Azure-hosted environment. These certificates are already compatible to the newly applied certificates and therefore no action is needed.
121
121
122
-
For connector using Self-hosted Integration Runtime where you explicitly include the path to SSL cert file in your connection string, you will need to download the [new certificate](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem) and update the connection string to use it.
122
+
For connector using Self-hosted Integration Runtime where you explicitly include the path to SSL cert file in your connection string, you need to download the [new certificate](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem) and update the connection string to use it.
123
123
124
124
### 7. Do I need to plan a database server maintenance downtime for this change?
125
125
126
126
No. Since the change here is only on the client side to connect to the database server, there's no maintenance downtime needed for the database server for this change.
127
127
128
128
### 8. If I create a new server after November 30, 2022, will I be impacted?
129
-
For servers created after November 30, 2022, you will continue to use the [BaltimoreCyberTrustRoot](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) together with new [DigiCertGlobalRootG2](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem) root certificates in your database client SSL certificate store for your applications to connect using SSL.
129
+
For servers created after November 30, 2022, you'll continue to use the [BaltimoreCyberTrustRoot](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) together with new [DigiCertGlobalRootG2](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem) root certificates in your database client SSL certificate store for your applications to connect using SSL.
130
130
131
131
### 9. How often does Microsoft update their certificates or what is the expiry policy?
132
132
133
-
These certificates used by Azure Database for PostgreSQL are provided by trusted Certificate Authorities (CA). So the support of these certificates is tied to the support of these certificates by CA. The [BaltimoreCyberTrustRoot](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) certificate is scheduled to expire in 2025 so Microsoft will need to perform a certificate change before the expiry. Also in case if there are unforeseen bugs in these predefined certificates, Microsoft will need to make the certificate rotation at the earliest similar to the change performed on February 15, 2021 to ensure the service is secure and compliant at all times.
133
+
These certificates used by Azure Database for PostgreSQL are provided by trusted Certificate Authorities (CA). So the support of these certificates is tied to the support of these certificates by CA. The [BaltimoreCyberTrustRoot](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) certificate is scheduled to expire in 2025 so Microsoft need to perform a certificate change before the expiry. Also in case if there are unforeseen bugs in these predefined certificates, Microsoft need to make the certificate rotation at the earliest similar to the change performed on February 15, 2021 to ensure the service is secure and compliant always.
134
134
135
-
### 10. If I am using read replicas, do I need to perform this update only on the primary server or the read replicas?
135
+
### 10. If I am using read replicas, do I need to perform this update only on the primary server , or the read replicas?
136
136
137
-
Since this update is a client-side change, if the client used to read data from the replica server, you will need to apply the changes for those clients as well.
137
+
Since this update is a client-side change, if the client used to read data from the replica server, you need to apply the changes for those clients as well.
138
138
139
139
### 11. Do we have server-side query to verify if SSL is being used?
140
140
@@ -147,14 +147,14 @@ No. There's no action needed if your certificate file already has the **DigiCert
147
147
148
148
### 13. How can I check the certificate that is sent by the server?
149
149
150
-
There are many tools that you can use. For example, DigiCert has a handy [tool](https://www.digicert.com/help/) that will show you the certificate chain of any server name. (This tool will only work with publicly accessible server; it cannot connect to server that is contained in a virtual network (VNET)).
151
-
Another tool you can use is OpenSSL in the command line, you can use the syntax below:
150
+
There are many tools that you can use. For example, DigiCert has a handy [tool](https://www.digicert.com/help/) that shows you the certificate chain of any server name. (This tool works with publicly accessible server; it cannot connect to server that is contained in a virtual network (VNET)).
151
+
Another tool you can use is OpenSSL in the command line, you can use this syntax to check certificates:
If you have questions, get answers from community experts in [Microsoft Q&A](mailto:[email protected]). If you have a support plan and you need technical help please create a [support request](../../azure-portal/supportability/how-to-create-azure-support-request.md):
157
+
If you have questions, get answers from community experts in [Microsoft Q&A](mailto:[email protected]). If you have a support plan and you need technical help, please create a [support request](../../azure-portal/supportability/how-to-create-azure-support-request.md):
158
158
* For *Issue type*, select *Technical*.
159
159
* For *Subscription*, select your *subscription*.
160
160
* For *Service*, select *My Services*, then select *Azure Database for PostgreSQL – Single Server*.
0 commit comments