Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
PostgreSQL için Azure Veritabanı, Aktarım Katmanı Güvenliği (TLS) kullanarak istemci uygulamalarınızı PostgreSQL için Azure Veritabanı esnek sunucu örneğine bağlamayı zorlar. TLS, veritabanı sunucunuzla istemci uygulamalarınız arasında şifreli ağ bağlantıları sağlayan endüstri standardı bir protokoldür. TLS, Güvenli Yuva Katmanı'nın (SSL) güncelleştirilmiş bir protokolüdür. SSL ve TLS terimleri hala birbirinin yerine kullanılır.
Önemli
11 Kasım 2025'den itibaren, aşağıdaki listede yer alan Azure bölgeleri, yeni ara CA sertifikaları kullanan bir TLS/SSL sertifika döndürmesi için planlanmaktadır.
- Orta Batı ABD
- Doğu Asya
- UK South
19 Ocak 2026'da bu dönüşümlerin Azure Government ve diğer tüm bölgeler de dahil olmak üzere kalan tüm Azure bölgelerine genişletilmesi planlanmaktadır.
Sorun giderme hakkında bilgi için bkz. Sertifika sabitleme sorunları.
Sertifika zincirleri
Sertifika zinciri, TLS/SSL sertifikası ve CA sertifikaları içeren sıralı bir sertifika listesidir. Alıcının gönderenin ve tüm CA'ların güvenilir olduğunu doğrulamasını sağlar. Zincir veya yol TLS/SSL sertifikasıyla başlar. Zincirdeki her sertifika, zincirdeki bir sonraki sertifika tarafından tanımlanan varlık tarafından imzalanır.
Zincir bir kök CA sertifikasıyla sonlanır. Bu sertifika her zaman CA tarafından imzalanır. Zincirdeki tüm sertifikaların imzalarının kök CA sertifikasına kadar doğrulanması gerekir.
TLS/SSL sertifikası ile zincirdeki kök CA sertifikası arasında yer alan tüm sertifikalar ara sertifika olarak adlandırılır.
TLS sürümleri
Dünya genelindeki çeşitli kamu kuruluşları, ağ güvenliğiyle ilgili TLS yönergelerini korur. Amerika Birleşik Devletleri'nde bu kuruluşlar Sağlık ve İnsan Hizmetleri Bakanlığı ile Ulusal Standartlar ve Teknoloji Enstitüsü'nü içerir. TLS'nin sağladığı güvenlik düzeyi en çok TLS protokolü sürümünden ve desteklenen şifreleme paketlerinden etkilenir.
Şifreleme paketi, şifreleme, anahtar değişimi algoritması ve karma algoritması içeren bir dizi algoritmadır. Güvenli bir TLS bağlantısı kurmak için birlikte kullanılırlar. Çoğu TLS istemcisi ve sunucusu birden çok alternatifi destekler. Ortak bir TLS sürümü ve şifre paketi seçmek için güvenli bir bağlantı kurduklarında anlaşmaları gerekir.
PostgreSQL için Azure Veritabanı TLS sürüm 1.2 ve üzerini destekler. RFC 8996'da Internet Engineering Task Force (IETF), TLS 1.0 ve TLS 1.1'in kullanılmaması gerektiğini açıkça belirtir. Her iki protokol de 2019 sonuna kadar kullanım dışı bırakılmıştır.
TLS protokolünün TLS 1.0 ve TLS 1.1 gibi önceki sürümlerini kullanan tüm gelen bağlantılar varsayılan olarak reddedilir.
IETF, AĞUSTOS 2018'de RFC 8446'da TLS 1.3 belirtimini yayımladı ve TLS 1.3 artık kullanımdaki en yaygın ve önerilen TLS sürümüdür. TLS 1.3, TLS 1.2'den daha hızlı ve daha güvenlidir.
Uyarı
SSL ve TLS sertifikaları, bağlantınızın en son düzey şifreleme protokolleriyle güvenli olduğunu onaylar. Kablodaki bağlantınızı şifreleyerek aktarım sırasında verilerinize yetkisiz erişimi engellersiniz. PostgreSQL için Azure Veritabanı esnek sunucu örneğine bağlantılarınızı şifrelemek için TLS'nin en son sürümlerini kullanmanızı kesinlikle öneririz.
Bunu önermesek de, gerekirse PostgreSQL için Azure Veritabanı esnek sunucu örneğinize bağlantılar için TLS\SSL'yi devre dışı bırakabilirsiniz. sunucu parametresini require_secure_transport olarak OFFgüncelleştirebilirsiniz. Ayrıca, ve ssl_min_protocol_version sunucu parametrelerini ayarlayarak ssl_max_protocol_version TLS sürümünü de ayarlayabilirsiniz.
Sertifika kimlik doğrulaması, kimlik doğrulaması için SSL istemci sertifikaları kullanılarak gerçekleştirilir. Bu senaryoda PostgreSQL sunucusu, istemci sertifikasının ortak ad (CN) özniteliğini istenen veritabanı kullanıcısı ile karşılaştırır.
Şu anda PostgreSQL için Azure Veritabanı şunları desteklememektedir:
- SSL sertifika tabanlı kimlik doğrulaması.
- Özel SSL\TLS sertifikaları.
Uyarı
Microsoft, PostgreSQL için Azure Veritabanı da dahil olmak üzere çeşitli Azure hizmetleri için kök CA değişiklikleri yaptı. Daha fazla bilgi için Bkz. Azure TLS sertifika değişiklikleri ve istemcide SSL yapılandırma.
Geçerli TLS\SSL bağlantı durumunuzu belirlemek için sslinfo uzantısını yükleyebilir ve ardından SSL'nin kullanılıp kullanılmadığını belirlemek için işlevini çağırabilirsiniz ssl_is_used() . Bağlantı SSL kullanıyorsa işlev döndürür t . Aksi takdirde döndürür f. PostgreSQL için Azure Veritabanı esnek sunucu örneğinizin SSL kullanımı hakkındaki tüm bilgileri işlem, istemci ve uygulamaya göre aşağıdaki sorguyu kullanarak da toplayabilirsiniz:
SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
FROM pg_stat_ssl
JOIN pg_stat_activity
ON pg_stat_ssl.pid = pg_stat_activity.pid
ORDER BY ssl;
Test için komutunu doğrudan da kullanabilirsiniz openssl :
openssl s_client -starttls postgres -showcerts -connect <your-postgresql-server-name>:5432
Bu komut, TLS sürümü ve şifresi gibi alt düzey protokol bilgilerini yazdırır. seçeneğini -starttls postgreskullanmanız gerekir. Aksi takdirde, bu komut ssl kullanılmadığını bildirir. Bu komutu kullanmak için en az OpenSSL 1.1.1 gerekir.
İstemciden PostgreSQL için Azure Veritabanı esnek sunucu örneğine bağlantıyı korumak amacıyla en son ve en güvenli TLS sürümünü uygulamak için ssl_min_protocol_version olarak ayarlayın 1.3. Bu ayar , PostgreSQL için Azure Veritabanı esnek sunucu örneğinize bağlanan istemcilerin protokolün bu sürümünü yalnızca güvenli bir şekilde iletişim kurmak için kullanmasını gerektirir. Eski istemciler bu sürümü desteklemediğinden sunucuyla iletişim kuramayabilir.
İstemcide SSL'yi yapılandırma
PostgreSQL varsayılan olarak sunucu sertifikasının herhangi bir doğrulamasını gerçekleştirmez. Bu nedenle, istemcinin haberi olmadan sunucu kimliğini (örneğin, bir DNS kaydını değiştirerek veya sunucu IP adresini devralarak) yanıltmak mümkündür. Tüm SSL seçenekleri şifreleme ve anahtar değişimi biçiminde ek yük taşır, bu nedenle performans ile güvenlik arasında bir denge kurulur.
Kimlik sahtekarlığına engel olmak için istemcide SSL sertifikası doğrulaması kullanılmalıdır.
İstemciyi SSL için yapılandırmak için birçok bağlantı parametresi vardır. Önemli olanlardan bazıları şunlardır:
ssl: SSL kullanarak bağlanın. Bu özelliğin kendisiyle ilişkilendirilmiş bir değere ihtiyacı yoktur. Yalnızca bir SSL bağlantısı belirtir. Gelecekteki sürümlerle uyumluluk için değertruetercih edilir. Bu modda, SSL bağlantısı kurarken istemci sürücüsü, ortadaki adam saldırılarını önlemek için sunucunun kimliğini doğrular. Sunucu sertifikasının güvenilen bir yetkili tarafından imzalanıp imzalanmadığını ve bağlandığınız konağın sertifikadaki konak adıyla aynı olup olmadığını denetler.sslmode: Şifrelemeye ihtiyacınız varsa ve şifrelenemiyorsa bağlantının başarısız olmasını istiyorsanız ayarlayınsslmode=require. Bu ayar, sunucunun bu ana bilgisayar/IP adresi için SSL bağlantılarını kabul etmek üzere yapılandırılmasını ve sunucunun istemci sertifikasını tanımasını sağlar. Sunucu SSL bağlantılarını kabul etmiyorsa veya istemci sertifikası tanınmıyorsa, bağlantı başarısız olur. Aşağıdaki tabloda bu ayarın değerleri listelemektedir:SSL modu Explanation disableŞifreleme kullanılmaz. allowŞifreleme, sunucu ayarları bunu gerektiriyorsa veya zorunlu kılıyorsa kullanılır. preferSunucu ayarları izin verirse şifreleme kullanılır. requireŞifreleme kullanılır. Sunucunun bu ana bilgisayar IP adresi için SSL bağlantılarını kabul etmek üzere yapılandırılmasını ve sunucunun istemci sertifikasını tanımasını sağlar. verify-caŞifreleme kullanılır. İstemcide depolanan sertifikaya karşı sunucu sertifikası imzasını doğrulayın. verify-fullŞifreleme kullanılır. sunucu sertifikası imzasını ve ana bilgisayar adını istemcide depolanan sertifikayla karşılaştırarak doğrulayın.
Kullanılan varsayılan sslmode mod libpq tabanlı istemciler (psql gibi) ile JDBC arasında farklıdır. Libpq tabanlı istemciler varsayılan olarak olur prefer. JDBC istemcileri varsayılan olarak olur verify-full.
-
sslcert,sslkeyvesslrootcert: Bu parametreler istemci sertifikasının varsayılan konumunu, PKCS-8 istemci anahtarını ve kök sertifikayı geçersiz kılabilir. Varsayılan olarak/defaultdir/postgresql.crt,/defaultdir/postgresql.pk8, ve/defaultdir/root.crtşeklindedir, buradadefaultdirLinux sistemlerinde${user.home}/.postgresql/ve Windows'da%appdata%/postgresql/'dir.
CA'lar sertifika verilmesinden sorumlu kurumlardır. Güvenilen sertifika yetkilisi, birinin söyledikleri kişi olduğunu doğrulama hakkına sahip bir varlıktır. Bu modelin çalışması için tüm katılımcıların güvenilir CA'lar üzerinde anlaşmaya varması gerekir. Tüm işletim sistemleri ve çoğu web tarayıcısı bir dizi güvenilir CA ile birlikte göndermektedir.
Ve yapılandırma ayarlarının kullanılması verify-caverify-full olarak da bilinir.sslmode Bu durumda, PostgreSQL sunucusundaki kök CA sertifikaları, sertifika imzasını ve hatta ana bilgisayar adını istemcideki sertifikayla eşleştirmelidir.
PostgreSQL sunucu sertifikalarında CA'lar değiştiğinde veya süresi dolduğunda istemci tarafından depolanan sertifikaları düzenli aralıklarla güncelleştirmeniz gerekebilir. CA'ları sabitleyip sabitlemediğinize karar vermek için bkz. Sertifika sabitleme ve Azure hizmetleri.
İstemcide SSL\TLS yapılandırması hakkında daha fazla bilgi için PostgreSQL belgelerine bakın.
Ve yapılandırma ayarlarını (sertifika sabitleme) kullanan verify-caverify-fullsslmode istemciler için, istemci sertifika depolarına üç kök CA sertifikası dağıtmaları gerekir:
- Hizmetler Digicert'ten Microsoft CA'ya geçirildiği için DigiCert Genel Kök G2 ve Microsoft RSA Kök CA 2017 kök CA sertifikaları.
- Eski uyumluluk için Digicert Genel Kök CA'sı.
Sertifika sabitleme senaryolarında kök CA sertifikalarını indirme ve uygulama istemcilerini güncelleştirme
Sertifika sabitleme senaryolarında istemci uygulamalarını güncelleştirmek için sertifikaları indirebilirsiniz:
Sertifikaları istemci sertifika depolarına aktarmak için, önceki URI'lerden sertifika dosyalarını indirdikten sonra sertifika .crt dosyalarını .pem biçimine dönüştürmeniz gerekebilir. OpenSSL yardımcı programını kullanarak şu dosya dönüştürmelerini yapabilirsiniz:
openssl x509 -inform DER -in certificate.crt -out certificate.pem -outform PEM
İstemci uygulamaları sertifika depolarını yeni kök CA sertifikaları ile güncelleştirme hakkındaki bilgiler , Uygulama istemcileri için istemci TLS sertifikalarını güncelleştirme bölümünde belgelenmiştir.
Önemli
Bazı Postgres istemci kitaplıkları, ayarı kullanılırken sslmode=verify-full ara sertifikalarla çapraz imzalanan kök CA sertifikalarıyla bağlantı hatalarıyla karşılaşabilir. Sonuç, alternatif güven yollarıdır. Bu durumda, parametresini sslrootcert açıkça belirtmenizi öneririz. Alternatif olarak, ortam değişkenini PGSSLROOTCERT varsayılan değerinden %APPDATA%\postgresql\root.crtMicrosoft RSA Kök CA 2017 kök CA sertifikasının yerleştirildiği yerel bir yola ayarlayın.
- İstemci uygulamasından PostgreSQL için Azure Veritabanı esnek sunucu örneğine bağlantı kaybı yaşandı - destek talebi açıldı.
- Ara sertifikanız döndürüldüyse, istemci sertifika deponuzu yeni ara sertifikayla güncelleştirmeniz gerekebilir.
- ara sertifikanızı sabitleyip sabitlemediğiniz nasıl denetlenir? bkz. Sertifika sabitleme ve Azure hizmetleri.
Sertifika sabitleme senaryolarıyla çoğaltmaları okuma
Microsoft RSA Kök CA 2017'ye kök CA geçişiyle, yeni oluşturulan çoğaltmaların daha önce oluşturulan birincil sunucudan daha yeni bir kök CA sertifikasında olması mümkündür. Ve yapılandırma ayarlarını (sertifika sabitleme) kullanan verify-caverify-fullsslmode istemciler için, kesilen bağlantının üç kök CA sertifikası kabul etmek zorunludur:
Şu anda PostgreSQL için Azure Veritabanı sertifika tabanlı kimlik doğrulamasını desteklemez.
Sertifika sabitleme senaryolarında psql ile bağlanarak istemci sertifikalarını test etme
Sertifika sabitleme senaryolarında sunucuya bağlantıyı test etmek için istemcinizin komut satırını kullanabilirsiniz psql :
$ psql "host=hostname.postgres.database.azure.com port=5432 user=myuser dbname=mydatabase sslmode=verify-full sslcert=client.crt sslkey=client.key sslrootcert=ca.crt"
SSL ve sertifika parametreleri hakkında daha fazla bilgi için psql belgelerine bakın.
TLS/SSL bağlantısını test etme
SSL özellikli sunucunuza bir istemci uygulamasından erişmeye çalışmadan önce, bu sunucuya psql aracılığıyla erişebildiğinizden emin olun. SSL bağlantısı kurduysanız aşağıdaki örneğe benzer bir çıkış görmeniz gerekir:
psql (14.5)SSL bağlantısı (protokol: TLSv1.2, şifre: ECDHE-RSA-AES256-GCM-SHA384, bit: 256, sıkıştırma: kapalı)Yardım için "help" yazın.
Ayrıca sslinfo uzantısını yükleyebilir ve ardından SSL'nin ssl_is_used() kullanılıp kullanılmadığını belirlemek için işlevini çağırabilirsiniz. Bağlantı SSL kullanıyorsa işlev döndürür t . Aksi takdirde döndürür f.
Şifre paketleri
Şifreleme paketi, bir dizi şifreleme algoritmasıdır. TLS/SSL protokolleri, anahtarlar oluşturmak ve bilgileri şifrelemek için şifre paketindeki algoritmaları kullanır.
Bir şifre paketi, uzun bir rastgele bilgi dizesi olarak görüntülenir, ancak bu dizenin her kesimi temel bilgileri içerir. Genel olarak, bu veri dizesi birkaç temel bileşen içerir:
- Protokol (yani TLS 1.2 veya TLS 1.3)
- Anahtar değişimi veya anlaşma algoritması
- Dijital imza (kimlik doğrulaması) algoritması
- Toplu şifreleme algoritması
- İleti kimlik doğrulama kodu algoritması (MAC)
TLS/SSL'nin farklı sürümleri farklı şifreleme paketlerini destekler. TLS 1.2 şifre paketleri TLS 1.3 bağlantıları ile anlaşılamaz ve tam tersi de geçerlidir.
Şu anda PostgreSQL için Azure Veritabanı, HIGH:!aNULL kategorisine giren TLS 1.2 protokol sürümüne sahip birçok şifreleme paketlerini destekler.
Troubleshoot
Sık karşılaşılan TLS/SSL sorunlarını hızla belirlemek ve çözmek için bu Sorun Giderme bölümündeki kılavuzu kullanın. Sorunu yeniden üreterek ve tanılama verilerini (istemci tarafı hata iletileri, psql çıktısı, OpenSSL s_client çıkışı ve sunucu günlükleri) toplayarak başlayın, ardından protokol sürümlerinde, şifreleme paketlerinde veya eksik/döndürülmüş sertifikalarda uyuşmazlıkları saptamak için sunucu parametrelerini (require_secure_transport, ssl_min_protocol_version, ssl_max_protocol_version), sertifika zincirini ve istemci sslmode/sslrootcert ayarlarını doğrulayın.
TLS/SSL bağlantı hataları
- TLS/SSL protokolü sürüm uyumluluğu sorunlarını gidermenin ilk adımı, istemciden TLS şifrelemesi altında PostgreSQL için Azure Veritabanı esnek sunucu örneğine erişmeye çalıştıklarında sizin veya kullanıcılarınızın gördüğü hata iletilerini belirlemektir. Uygulamaya ve platforma bağlı olarak hata iletileri farklı olabilir. Çoğu durumda, temel alınan soruna işaret ederler.
- TLS/SSL protokolü sürüm uyumluluğundan emin olmak için, uyumlu sürümleri ve şifreleme paketlerini desteklediğinden emin olmak için veritabanı sunucusunun ve uygulama istemcisinin TLS/SSL yapılandırmasını denetleyin.
- Veritabanı sunucusu ile istemcinin TLS/SSL sürümleri ve şifre paketleri arasındaki tutarsızlıkları veya boşlukları analiz edin. Belirli seçenekleri etkinleştirerek veya devre dışı bırakarak, yazılımı yükselterek veya düşürerek ya da sertifikaları ya da anahtarları değiştirerek bunları çözmeyi deneyin. Örneğin, güvenlik ve uyumluluk gereksinimlerine bağlı olarak sunucuda veya istemcide belirli TLS/SSL sürümlerini etkinleştirmeniz veya devre dışı bırakmanız gerekebilir. Örneğin, güvenli olmayan ve kullanım dışı olarak kabul edilen TLS 1.0 ve TLS 1.1'i devre dışı bırakmanız ve daha güvenli ve modern tls 1.2 ve TLS 1.3'i etkinleştirmeniz gerekebilir.
-
Microsoft RSA Kök CA 2017 ile verilen en yeni sertifika, Digicert Global Root G2 CA tarafından çapraz imzalanan zincirde ara var. Veya ayarlarını kullanırken
sslmode=verify-fullsslmode=verify-caPostgres istemci kitaplıklarından bazıları, ara sertifikalarla çapraz imzalı kök CA sertifikalarıyla bağlantı hataları yaşayabilir. Sonuç, alternatif güven yollarıdır.
Bu sorunlara geçici bir çözüm olarak, gerekli üç sertifikayı da istemci sertifika deposuna ekleyin veya parametresini sslrootcert açıkça belirtin. Alternatif olarak, ortam değişkenini PGSSLROOTCERT varsayılan değerinden %APPDATA%\postgresql\root.crtMicrosoft RSA Kök CA 2017 kök CA sertifikasının yerleştirildiği yerel yola ayarlayın.
Sertifika sabitleme sorunları
Uyarı
İstemci uygulama bağlantı dizesinde sslmode=verify-full veya sslmode=verify-ca ayarlarını kullanmıyorsanız, sertifika döngüleri sizi etkilemez.
Bu nedenle, bu bölümdeki adımları izlemeniz gerekmez.
- Uygulamanızda sertifika sabitleme kullanıp kullanmadığınızdan emin olun.
- Güvenilen kök deponuzdaki sertifikaların listesini oluşturma
- Tek tek ara sertifikalarınız veya tek tek PostgreSQL sunucu sertifikalarınız varsa sertifika sabitlemeyi kullanıyorsunuz.
- Sertifika sabitlemeyi kaldırmak için, güvenilen kök deponuzdan tüm sertifikaları kaldırın ve yeni sertifikaları ekleyin.
- Güncelleştirilmiş sertifikaları Microsoft'un resmi deposundan indirebilirsiniz: Azure Sertifika Yetkilisi ayrıntıları.
- Geçerli zincir:
- DigiCert Genel Kök G2
- Microsoft Azure RSA TLS Yayımlayan CA 03 / 04 / 07 / 08
- Yeni zincir:
- DigiCert Genel Kök G2
- Microsoft TLS RSA Kök G2
- Microsoft TLS G2 RSA CA OCSP 02 / 04 / 06 / 08 / 10 / 12 / 14 / 16
- Geçerli zincir:
- Güncelleştirilmiş sertifikaları Microsoft'un resmi deposundan indirebilirsiniz: Azure Sertifika Yetkilisi ayrıntıları.
Bu adımları takip ettikten sonra bile sorun yaşıyorsanız Microsoft desteğine başvurun. Başlığa ICA Rotasyon 2026 ekleyin.