Skip to content

Commit 9916618

Browse files
committed
Update concepts-certificate-rotation.md
1 parent b36cfbb commit 9916618

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

articles/postgresql/single-server/concepts-certificate-rotation.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
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
44
ms.service: postgresql
55
ms.subservice: single-server
66
ms.topic: conceptual
@@ -24,24 +24,24 @@ As per the industry's compliance requirements, CA vendors began revoking CA cert
2424

2525
The new certificate is rolled out and in effect starting December, 2022 (12/2022).
2626

27-
## What change will be performed starting December 2022 (12/2022)?
27+
## What change scheduled to be be performed starting December 2022 (12/2022)?
2828

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.
3030

3131
## Do I need to make any changes on my client to maintain connectivity?
3232

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.**
3434

3535
## Do I need to make any changes to client certificates
3636

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.
3838

3939
### Client Certificate Update Recommendation
4040

4141
* Download BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 Root CA from links below:
4242
* https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem
4343
* https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem
44-
* Optionally, to prevent future disruption, it is also recommended to add the following roots to the trusted store:
44+
* Optionally, to prevent future disruption, it's also recommended to add the following roots to the trusted store:
4545
* [DigiCert Global Root G3](https://www.digicert.com/kb/digicert-root-certificates.htm) (thumbprint: 7e04de896a3e666d00e687d33ffad93be83d349e)
4646
* [Microsoft RSA Root Certificate Authority 2017](https://www.microsoft.com/pkiops/certs/Microsoft%20RSA%20Root%20Certificate%20Authority%202017.crt) (thumbprint: 73a5e64a3bff8316ff0edccc618a906e4eae4d74)
4747
* [Microsoft ECC Root Certificate Authority 2017](https://www.microsoft.com/pkiops/certs/Microsoft%20ECC%20Root%20Certificate%20Authority%202017.crt) (thumbprint: 999a64c37ff47d9fab95f14769891460eec4c3c5)
@@ -80,11 +80,11 @@ By default, PostgreSQL will not perform any verification of the server certifica
8080
* In future, after the new certificate deployed on the server side, you can change your CA pem file to DigiCertGlobalRootG2.crt.pem.
8181

8282
> [!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.
8484

8585
## What if we removed the BaltimoreCyberTrustRoot certificate?
8686

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.
8888

8989
## Frequently asked questions
9090

@@ -103,7 +103,7 @@ You can identify whether your connections verify the root certificate by reviewi
103103
- If your connection string includes `sslmode=disable`, `sslmode=allow`, `sslmode=prefer`, or `sslmode=require`, you do not need to update certificates.
104104
- If your connection string doesn't specify sslmode, you don't need to update certificates.
105105

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.
107107

108108
### 4. What is the impact if using App Service with Azure Database for PostgreSQL?
109109

@@ -113,28 +113,28 @@ For Azure app services, connecting to Azure Database for PostgreSQL, we can have
113113

114114
### 5. What is the impact if using Azure Kubernetes Services (AKS) with Azure Database for PostgreSQL?
115115

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).
117117

118118
### 6. What is the impact if using Azure Data Factory to connect to Azure Database for PostgreSQL?
119119

120120
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.
121121

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.
123123

124124
### 7. Do I need to plan a database server maintenance downtime for this change?
125125

126126
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.
127127

128128
### 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.
130130

131131
### 9. How often does Microsoft update their certificates or what is the expiry policy?
132132

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.
134134

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?
136136

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.
138138

139139
### 11. Do we have server-side query to verify if SSL is being used?
140140

@@ -147,14 +147,14 @@ No. There's no action needed if your certificate file already has the **DigiCert
147147

148148
### 13. How can I check the certificate that is sent by the server?
149149

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:
152152
```bash
153153
openssl s_client -showcerts -connect <your-postgresql-server-name>:443
154154
```
155155

156156
### 14. What if I have further questions?
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):
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):
158158
* For *Issue type*, select *Technical*.
159159
* For *Subscription*, select your *subscription*.
160160
* For *Service*, select *My Services*, then select *Azure Database for PostgreSQL – Single Server*.

0 commit comments

Comments
 (0)