Skip to content

Commit 12ccbbd

Browse files
authored
Merge pull request #212183 from GennadNY/gennady89
Gennady89
2 parents 7dd8a3b + 29d554c commit 12ccbbd

File tree

1 file changed

+30
-29
lines changed

1 file changed

+30
-29
lines changed

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

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,43 @@ description: Learn about the upcoming changes of root certificate changes that w
44
ms.service: postgresql
55
ms.subservice: single-server
66
ms.topic: conceptual
7-
ms.author: sunila
8-
author: sunilagarwal
7+
ms.author: gennadyk
8+
author: GennadNY
99
ms.reviewer: ""
10-
ms.date: 06/24/2022
10+
ms.date: 09/20/2022
1111
---
1212

1313
# Understanding the changes in the Root CA change for Azure Database for PostgreSQL Single server
1414

1515
[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]
1616

17-
Azure Database for PostgreSQL Single Server successfully completed the root certificate change on **February 15, 2021 (02/15/2021)** as part of standard maintenance and security best practices. This article gives you more details about the changes, the resources affected, and the steps needed to ensure that your application maintains connectivity to your database server.
17+
Azure Database for PostgreSQL Single Server planning the root certificate change starting **October, 2022 (10/2022)** as part of standard maintenance and security best practices. This article gives you more details about the changes, the resources affected, and the steps needed to ensure that your application maintains connectivity to your database server.
1818

1919
## Why root certificate update is required?
2020

21-
Azure database for PostgreSQL users can only use the predefined certificate to connect to their PostgreSQL server, which is located [here](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem). However, [Certificate Authority (CA) Browser forum](https://cabforum.org/) recently published reports of multiple certificates issued by CA vendors to be non-compliant.
21+
Historically, Azure database for PostgreSQL users could only use the predefined certificate to connect to their PostgreSQL server, which is located [here](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem). However, [Certificate Authority (CA) Browser forum](https://cabforum.org/) recently published reports of multiple certificates issued by CA vendors to be non-compliant.
2222

2323
As per the industry's compliance requirements, CA vendors began revoking CA certificates for non-compliant CAs, requiring servers to use certificates issued by compliant CAs, and signed by CA certificates from those compliant CAs. Since Azure Database for MySQL used one of these non-compliant certificates, we needed to rotate the certificate to the compliant version to minimize the potential threat to your MySQL servers.
2424

25-
The new certificate is rolled out and in effect starting February 15, 2021 (02/15/2021).
25+
The new certificate is rolled out and in effect starting October, 2022 (10/2022).
2626

27-
## What change was performed on February 15, 2021 (02/15/2021)?
27+
## What change will be performed starting October 2022 (10/2022)?
2828

29-
On February 15, 2021, the [BaltimoreCyberTrustRoot root certificate](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) was replaced with a **compliant version** of the same [BaltimoreCyberTrustRoot root certificate](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) to ensure existing customers do not need to change anything and there is no impact to their connections to the server. During this change, the [BaltimoreCyberTrustRoot root certificate](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) was **not replaced** with [DigiCertGlobalRootG2](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem) and that change is deferred to allow more time for customers to make the change.
29+
Starting October 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://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.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.
3030

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

33-
There is no change required on client side. if you followed our previous recommendation below, you will still be able to continue to connect as long as **BaltimoreCyberTrustRoot certificate is not 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 previous 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.**
3434

3535
### Previous Recommendation
3636

3737
* Download BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 Root CA from links below:
3838
* https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem
3939
* https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem
40+
* Optionally, to prevent future disruption, it is also recommended to add the following roots to the trusted store:
41+
* [DigiCert Global Root G3](https://www.digicert.com/kb/digicert-root-certificates.htm) (thumbprint: 7e04de896a3e666d00e687d33ffad93be83d349e)
42+
* [Microsoft RSA Root Certificate Authority 2017](https://www.microsoft.com/pkiops/certs/Microsoft%20RSA%20Root%20Certificate%20Authority%202017.crt) (thumbprint: 73a5e64a3bff8316ff0edccc618a906e4eae4d74)
43+
* [Microsoft ECC Root Certificate Authority 2017](https://www.microsoft.com/pkiops/certs/Microsoft%20ECC%20Root%20Certificate%20Authority%202017.crt) (thumbprint: 999a64c37ff47d9fab95f14769891460eec4c3c5)
4044

4145
* Generate a combined CA certificate store with both **BaltimoreCyberTrustRoot** and **DigiCertGlobalRootG2** certificates are included.
4246
* For Java (PostgreSQL JDBC) users using DefaultJavaSSLFactory, execute:
@@ -53,11 +57,11 @@ There is no change required on client side. if you followed our previous recomme
5357
* System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
5458
* System.setProperty("javax.net.ssl.trustStorePassword","password");
5559

56-
* For .NET (Npgsql) users on Windows, make sure **Baltimore CyberTrust Root** and **DigiCert Global Root G2** both exist in Windows Certificate Store, Trusted Root Certification Authorities. If any certificates do not exist, import the missing certificate.
60+
* For .NET (Npgsql) users on Windows, make sure **Baltimore CyberTrust Root** and **DigiCert Global Root G2** both exist in Windows Certificate Store, Trusted Root Certification Authorities. If any certificates don't exist, import the missing certificate.
5761

5862
![Azure Database for PostgreSQL .net cert](media/overview/netconnecter-cert.png)
5963

60-
* For .NET (Npgsql) users on Linux using SSL_CERT_DIR, make sure **BaltimoreCyberTrustRoot** and **DigiCertGlobalRootG2** both exist in the directory indicated by SSL_CERT_DIR. If any certificates do not exist, create the missing certificate file.
64+
* For .NET (Npgsql) users on Linux using SSL_CERT_DIR, make sure **BaltimoreCyberTrustRoot** and **DigiCertGlobalRootG2** both exist in the directory indicated by SSL_CERT_DIR. If any certificates don't exist, create the missing certificate file.
6165

6266
* For other PostgreSQL client users, you can merge two CA certificate files like this format below
6367

@@ -72,13 +76,7 @@ There is no change required on client side. if you followed our previous recomme
7276
* In future, after the new certificate deployed on the server side, you can change your CA pem file to DigiCertGlobalRootG2.crt.pem.
7377

7478
> [!NOTE]
75-
> Please do not 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.
76-
77-
## Why was BaltimoreCyberTrustRoot certificate not replaced to DigiCertGlobalRootG2 during this change on February 15, 2021?
78-
79-
We evaluated the customer readiness for this change and realized many customers were looking for additional lead time to manage this change. In the interest of providing more lead time to customers for readiness, we have decided to defer the certificate change to DigiCertGlobalRootG2 for at least a year providing sufficient lead time to the customers and end users.
80-
81-
Our recommendations to users is, use the aforementioned steps to create a combined certificate and connect to your server but do not remove BaltimoreCyberTrustRoot certificate until we send a communication to remove it.
79+
> 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.
8280

8381
## What if we removed the BaltimoreCyberTrustRoot certificate?
8482

@@ -88,18 +86,18 @@ You will start to connectivity errors while connecting to your Azure Database fo
8886

8987
### 1. If I am not using SSL/TLS, do I still need to update the root CA?
9088

91-
No actions required if you are not using SSL/TLS.
89+
No actions required if you aren't using SSL/TLS.
9290

9391
### 2. If I am using SSL/TLS, do I need to restart my database server to update the root CA?
9492

95-
No, you do not need to restart the database server to start using the new certificate. This is a client-side change and the incoming client connections need to use the new certificate to ensure that they can connect to the database server.
93+
No, you don't need to restart the database server to start using the new certificate. This is a client-side change and the incoming client connections need to use the new certificate to ensure that they can connect to the database server.
9694

9795
### 3. How do I know if I'm using SSL/TLS with root certificate verification?
9896

9997
You can identify whether your connections verify the root certificate by reviewing your connection string.
10098
- If your connection string includes `sslmode=verify-ca` or `sslmode=verify-full`, you need to update the certificate.
10199
- If your connection string includes `sslmode=disable`, `sslmode=allow`, `sslmode=prefer`, or `sslmode=require`, you do not need to update certificates.
102-
- If your connection string does not specify sslmode, you do not need to update certificates.
100+
- If your connection string doesn't specify sslmode, you don't need to update certificates.
103101

104102
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.
105103

@@ -121,11 +119,10 @@ For connector using Self-hosted Integration Runtime where you explicitly include
121119

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

124-
No. Since the change here is only on the client side to connect to the database server, there is no maintenance downtime needed for the database server for this change.
122+
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.
125123

126-
### 8. If I create a new server after February 15, 2021 (02/15/2021), will I be impacted?
127-
128-
For servers created after February 15, 2021 (02/15/2021), you will continue to use the [BaltimoreCyberTrustRoot](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) for your applications to connect using SSL.
124+
### 8. If I create a new server after October 2022 (10/2022), will I be impacted?
125+
For servers created after October 2022 (10/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.
129126

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

@@ -141,12 +138,16 @@ To verify if you are using SSL connection to connect to the server refer [SSL ve
141138

142139
### 12. Is there an action needed if I already have the DigiCertGlobalRootG2 in my certificate file?
143140

144-
No. There is no action needed if your certificate file already has the **DigiCertGlobalRootG2**.
141+
No. There's no action needed if your certificate file already has the **DigiCertGlobalRootG2**.
145142

146143
### 13. What if you are using docker image of PgBouncer sidecar provided by Microsoft?
147-
148-
A new docker image which supports both [**Baltimore**](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) and [**DigiCert**](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem) is published to below [here](https://hub.docker.com/_/microsoft-azure-oss-db-tools-pgbouncer-sidecar) (Latest tag). You can pull this new image to avoid any interruption in connectivity starting February 15, 2021.
144+
A new docker image which supports both [**Baltimore**](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem) and [**DigiCert**](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem) is published to below [here](https://hub.docker.com/_/microsoft-azure-oss-db-tools-pgbouncer-sidecar) (Latest tag). You can pull this new image to avoid any interruption in connectivity starting October, 2022.
149145

150146
### 14. What if I have further questions?
147+
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](https://learn.microsoft.com/azure/azure-portal/supportability/how-to-create-azure-support-request):
148+
* For *Issue type*, select *Technical*.
149+
* For *Subscription*, select your *subscription*.
150+
* For *Service*, select *My Services*, then select *Azure Database for PostgreSQL – Single Server*.
151+
* For *Problem type*, select *Security*.
152+
* For *Problem subtype*, select  *Azure Encryption and Infrastructure Double Encryption*
151153

152-
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, [contact us](mailto:[email protected])

0 commit comments

Comments
 (0)