Share via


PostgreSQL için Azure Veritabanı Tek sunucu için Kök CA değişikliğindeki değişiklikleri anlama

ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı - Tek Sunucu

Önemli

PostgreSQL için Azure Veritabanı - Tek Sunucu kullanımdan kaldırma yolundadır. PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya yükseltmenizi kesinlikle öneririz. PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya geçiş hakkında daha fazla bilgi için bkz. PostgreSQL için Azure Veritabanı Tek Sunucuya ne oluyor?.

Kök sertifika değişikliğini planlamaya PostgreSQL için Azure Veritabanı Tek Sunucu başlatılıyor Standart bakım ve güvenlik en iyi uygulamalarının bir parçası olarak Aralık 2022 (12/2022). Bu makalede değişiklikler, etkilenen kaynaklar ve uygulamanızın veritabanı sunucunuzla bağlantıyı sürdürmesini sağlamak için gereken adımlar hakkında daha fazla bilgi verilmektedir.

Kök sertifika güncelleştirmesi neden gereklidir?

Geçmişte PostgreSQL için Azure veritabanı kullanıcıları, burada bulunan PostgreSQL sunucularına bağlanmak için yalnızca önceden tanımlanmış sertifikayı kullanabiliyorlardı. Ancak, Sertifika Yetkilisi (CA) Tarayıcı forumu yakın zamanda CA satıcıları tarafından uyumsuz olarak verilen birden çok sertifikanın raporlarını yayımladı.

Endüstrinin uyumluluk gereksinimlerine göre, CA satıcıları uyumlu olmayan CA'lar için CA sertifikalarını iptal etmeye başladı, sunucuların uyumlu CA'lar tarafından verilen ve bu uyumlu CA'lardan CA sertifikaları tarafından imzalanan sertifikaları kullanmasını gerektirerek. PostgreSQL için Azure Veritabanı bu uyumlu olmayan sertifikalardan birini kullandığından, Postgres sunucularınız için olası tehdidi en aza indirmek için sertifikayı uyumlu sürüme döndürmemiz gerekiyordu.

Yeni sertifika, Aralık 2022'den (12/2022) itibaren kullanıma sunuldu ve yürürlüğe girdi.

Aralık 2022'den (12/2022) itibaren hangi değişikliğin gerçekleştirilmesi planlandı?

Aralık 2022'den itibaren BaltimoreCyberTrustRoot kök sertifikası, DigiCertGlobalRootG2 kök sertifikası olarak bilinen uyumlu bir sürümle değiştirilir. Uygulamalarınız, veritabanı istemci bağlantısındaki sslmode parametresinin değeri olarak verify-ca veya verify-full özelliklerinden yararlanıyorsa, bağlantıyı sürdürmek için sertifika deposuna yeni sertifika eklemek için yönergeleri izlemesi gerekir.

Bağlantıyı sürdürmek için istemcimde herhangi bir değişiklik yapmam gerekiyor mu?

İstemci tarafında kod veya uygulama değişikliği gerekmez. Aşağıdaki sertifika güncelleştirme önerimizi izlerseniz BaltimoreCyberTrustRoot sertifikası birleşik CA sertifikasından kaldırılmadıkça bağlanmaya devam edebilirsiniz. Bağlantıyı sürdürmek için bir sonraki bildirime kadar BaltimoreCyberTrustRoot'ı birleşik CA sertifikanızdan kaldırmamanızı öneririz.

İstemci sertifikalarında herhangi bir değişiklik yapmam gerekiyor mu?

PostgreSQL varsayılan olarak sunucu sertifikasının herhangi bir doğrulamasını gerçekleştirmez. Bu, istemcinin haberi olmadan sunucu kimliğini (örneğin, bir DNS kaydını değiştirerek veya sunucu IP adresini devralarak) sahtekarlık yapmak hala teorik olarak mümkün olduğu anlamına gelir. Olası kimlik sahtekarlıklarını önlemek için istemcide SSL sertifikası doğrulaması kullanılmalıdır. Bu doğrulama, uygulama istemcisi bağlantı dizesi ssl modu değeri (verify-ca veya verify-full) aracılığıyla ayarlanabilir. Bu ssl modu değerleri seçilirse, sonraki bölümde yönergeleri izlemeniz gerekir.

İstemci Sertifikası Güncelleştirme Önerisi

  • BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 Kök CA'sini aşağıdaki bağlantılardan indirin:

  • İsteğe bağlı olarak, gelecekteki kesintileri önlemek için aşağıdaki köklerin güvenilen depoya eklenmesi de önerilir:

  • Hem BaltimoreCyberTrustRoot hem de DigiCertGlobalRootG2 sertifikaları dahil olmak üzere birleşik bir CA sertifika deposu oluşturun.

    • DefaultJavaSSLFactory kullanan Java (PostgreSQL JDBC) kullanıcıları için şunu yürütür:

      keytool -importcert -alias PostgreSQLServerCACert  -file D:\BaltimoreCyberTrustRoot.crt.pem  -keystore truststore -storepass password -noprompt
      
      keytool -importcert -alias PostgreSQLServerCACert2  -file D:\DigiCertGlobalRootG2.crt.pem -keystore truststore -storepass password  -noprompt
      

      Ardından özgün keystore dosyasını yeni oluşturulan dosyayla değiştirin:

      • System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
      • System.setProperty("javax.net.ssl.trustStorePassword","password");
    • Windows'daki .NET (Npgsql) kullanıcıları için Baltimore CyberTrust Root ve DigiCert Global Root G2'nin her ikisinin de Windows Sertifika Deposu, Güvenilen Kök Sertifika Yetkilileri'nde mevcut olduğundan emin olun. Herhangi bir sertifika yoksa, eksik sertifikayı içeri aktarın.

      .net sertifika PostgreSQL için Azure Veritabanı

    • linux üzerinde SSL_CERT_DIR kullanan .NET (Npgsql) kullanıcıları için BaltimoreCyberTrustRoot ve DigiCertGlobalRootG2'nin her ikisinin de SSL_CERT_DIR tarafından belirtilen dizinde bulunduğundan emin olun. Herhangi bir sertifika yoksa, eksik sertifika dosyasını oluşturun.

    • Diğer PostgreSQL istemci kullanıcıları için aşağıdaki biçimdeki gibi iki CA sertifika dosyasını birleştirebilirsiniz


      -----BEGIN CERTIFICATE-----
      (Kök CA1: BaltimoreCyberTrustRoot.crt.pem)
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      (Kök CA2: DigiCertGlobalRootG2.crt.pem)
      -----END CERTIFICATE-----

  • Özgün kök CA pem dosyasını birleştirilmiş kök CA dosyasıyla değiştirin ve uygulamanızı/istemcinizi yeniden başlatın.

  • Gelecekte, sunucu tarafında dağıtılan yeni sertifikadan sonra CA pem dosyanızı DigiCertGlobalRootG2.crt.pem olarak değiştirebilirsiniz.

Not

Lütfen sertifika değişikliği yapılana kadar Baltimore sertifikasını bırakmayın veya değiştirmeyin. Değişiklik yapıldıktan sonra, Baltimore sertifikasını bırakmalarının güvenli olduğu bir iletişim göndereceğiz.

BaltimoreCyberTrustRoot sertifikasını kaldırırsak ne olur?

PostgreSQL için Azure Veritabanı sunucunuza bağlanırken bağlantı hataları almaya başlayabilirsiniz. Bağlantıyı sürdürmek için BaltimoreCyberTrustRoot sertifikasıyla SSL'yi yeniden yapılandırmanız gerekir.

Sık sorulan sorular

1. SSL/TLS kullanmıyorsam kök CA'yı güncelleştirmem gerekiyor mu?

SSL/TLS kullanmıyorsanız hiçbir eylem gerekmez.

2. SSL/TLS kullanıyorsam, kök CA'yı güncelleştirmek için veritabanı sunucumu yeniden başlatmam gerekiyor mu?

Hayır, yeni sertifikayı kullanmaya başlamak için veritabanı sunucusunu yeniden başlatmanız gerekmez. Bu, istemci tarafı bir değişikliktir ve gelen istemci bağlantılarının veritabanı sunucusuna bağlanabilmesi için yeni sertifikayı kullanması gerekir.

3. Kök sertifika doğrulaması ile SSL/TLS kullanıp kullanmadığımı Nasıl yaparım? biliyor musunuz?

bağlantı dizesi gözden geçirerek bağlantılarınızın kök sertifikayı doğrulayıp doğrulamadığını belirleyebilirsiniz.

  • bağlantı dizesi veya sslmode=verify-fulliçeriyorsa sslmode=verify-ca sertifikayı güncelleştirmeniz gerekir.
  • bağlantı dizesi , , sslmode=allowsslmode=preferveya sslmode=requireiçeriyorsa sslmode=disablesertifikaları güncelleştirmeniz gerekmez.
  • bağlantı dizesi sslmode belirtmiyorsa sertifikaları güncelleştirmeniz gerekmez.

bağlantı dizesi soyutlayan bir istemci kullanıyorsanız, sertifikaları doğrulayıp doğrulamadığını anlamak için istemcinin belgelerini gözden geçirin. PostgreSQL sslmode'yi anlamak için PostgreSQL belgelerindeki SSL modu açıklamalarını gözden geçirin.

4. App Service'i PostgreSQL için Azure Veritabanı ile kullanmak nasıl bir etki oluşturur?

PostgreSQL için Azure Veritabanı'a bağlanan Azure uygulama hizmetleri için iki olası senaryomuz olabilir ve bu durum uygulamanızla SSL'yi nasıl kullandığınıza bağlıdır.

  • Bu yeni sertifika, platform düzeyinde App Service'e eklendi. Uygulamanızda App Service platformunda bulunan SSL sertifikalarını kullanıyorsanız herhangi bir işlem yapmanız gerekmez.
  • Kodunuzda SSL sertifika dosyasının yolunu açıkça dahil ediyorsanız, yeni sertifikayı indirmeniz ve kodu yeni sertifikayı kullanacak şekilde güncelleştirmeniz gerekir. App Service belgelerinde paylaşılan şekilde App Service'te özel kapsayıcılar kullandığınızda bu senaryoya iyi bir örnektir

5. Azure Kubernetes Services'ı (AKS) PostgreSQL için Azure Veritabanı kullanıyorsanız bunun etkisi nedir?

Azure Kubernetes Services (AKS) kullanarak PostgreSQL için Azure Veritabanı bağlanmaya çalışıyorsanız, ayrılmış müşterilerin konak ortamından erişime benzer. Buradaki adımlara bakın.

6. PostgreSQL için Azure Veritabanı bağlanmak için Azure Data Factory kullanıyorsanız bunun etkisi nedir?

Azure Integration Runtime kullanan bağlayıcı için bağlayıcı, Azure tarafından barındırılan ortamdaki Windows Sertifika Deposu'ndaki sertifikalardan yararlanıyor. Bu sertifikalar yeni uygulanan sertifikalarla zaten uyumludur ve bu nedenle hiçbir eylem gerekmez.

bağlantı dizesi SSL sertifika dosyasının yolunu açıkça eklediğiniz Şirket İçinde Barındırılan Integration Runtime kullanan bağlayıcı için yeni sertifikayı indirmeniz ve kullanmak üzere bağlantı dizesi güncelleştirmeniz gerekir.

7. Bu değişiklik için veritabanı sunucusu bakım kapalı kalma süresini planlamam gerekiyor mu?

Hayır Buradaki değişiklik yalnızca veritabanı sunucusuna bağlanmak için istemci tarafında olduğundan, bu değişiklik için veritabanı sunucusu için bakım kapalı kalma süresi gerekmez.

8. 30 Kasım 2022'den sonra yeni bir sunucu oluşturursam etkilenecek miyim?

30 Kasım 2022'den sonra oluşturulan sunucular için BaltimoreCyberTrustRoot'u, uygulamalarınızın SSL kullanarak bağlanması için veritabanı istemci SSL sertifika deponuzdaki yeni DigiCertGlobalRootG2 kök sertifikalarıyla birlikte kullanmaya devam edeceksiniz.

9. Microsoft sertifikalarını ne sıklıkta güncelleştirir veya süre sonu ilkesi nedir?

PostgreSQL için Azure Veritabanı tarafından kullanılan bu sertifikalar güvenilen Sertifika Yetkilileri (CA) tarafından sağlanır. Bu nedenle, bu sertifikaların desteği CA tarafından bu sertifikaların desteğine bağlıdır. BaltimoreCyberTrustRoot sertifikasının süresi 2025'te dolacak şekilde zamanlanmıştır, bu nedenle Microsoft'un süresi dolmadan önce bir sertifika değişikliği gerçekleştirmesi gerekir. Ayrıca önceden tanımlanmış bu sertifikalarda öngörülemeyen hatalar olması durumunda, Hizmetin her zaman güvenli ve uyumlu olduğundan emin olmak için Microsoft'un 15 Şubat 2021'de gerçekleştirilen değişikliğe en erken şekilde sertifika döndürmesi gerekir.

10. Okuma amaçlı çoğaltmalar kullanıyorsam, bu güncelleştirmeyi yalnızca birincil sunucuda mı yoksa okuma amaçlı çoğaltmalarda mı gerçekleştirmem gerekir?

Bu güncelleştirme bir istemci tarafı değişikliği olduğundan, istemci çoğaltma sunucusundan verileri okurken kullandıysa, bu istemciler için de değişiklikleri uygulamanız gerekir.

11. SSL'nin kullanılıp kullanılmadığını doğrulamak için sunucu tarafı sorgumuz var mı?

Sunucuya bağlanmak için SSL bağlantısı kullanıp kullanmadığınızdan emin olmak için SSL doğrulamasına bakın.

12. Sertifika dosyamda zaten DigiCertGlobalRootG2 varsa bir eylem gerekiyor mu?

Hayır Sertifika dosyanızda zaten DigiCertGlobalRootG2 varsa herhangi bir eylem gerekmez.

13. Sunucu tarafından gönderilen sertifikayı nasıl denetleyebilirim?

Kullanabileceğiniz birçok araç vardır. Örneğin, DigiCert'in size herhangi bir sunucu adının sertifika zincirini gösteren kullanışlı bir aracı vardır. (Bu araç genel olarak erişilebilen sunucuyla çalışır; bir sanal ağda (VNET) bulunan sunucuya bağlanamaz. Kullanabileceğiniz bir diğer araç da komut satırında OpenSSL'dir; sertifikaları denetlemek için bu söz dizimini kullanabilirsiniz:

openssl s_client -starttls postgres -showcerts -connect <your-postgresql-server-name>:5432

14. Başka sorularım varsa ne olacak?

Sorularınız varsa Microsoft Q&A'daki topluluk uzmanlarından yanıt alın. Destek planınız varsa ve teknik yardıma ihtiyacınız varsa lütfen bir destek isteği oluşturun:

  • Sorun türü için Teknik'i seçin.
  • Abonelik için aboneliğinizi seçin.
  • Hizmet için Hizmetlerim'i ve ardından PostgreSQL için Azure Veritabanı – Tek Sunucu'yı seçin.
  • Sorun türü için Güvenlik'i seçin.
  • Sorun alt türü için Azure Şifrelemesi ve Altyapı Çift Şifreleme'yi seçin