Azure web sitesinden VM Rolüne DB bağlanırken “Sertifika zinciri güvenilir olmayan bir yetkili tarafından verildi”


192

Azure Web sitesinden VM Rolü (SQL VM Rolü Var) olan MY DB bağlanırken hata yaşıyorum. Hem VM Rolü hem de Azure Web Sitesi Batı bölgesinde. Aşağıdaki sorunla karşı karşıyayım:

SqlException (0x80131904): Sunucuyla başarıyla bir bağlantı kuruldu, ancak daha sonra oturum açma işlemi sırasında bir hata oluştu. (sağlayıcı: SSL Sağlayıcısı, hata: 0 - Sertifika zinciri güvenilir olmayan bir yetkili tarafından verildi.)]

SSMS kullanarak DB'ye bağlanabiliyorum. VM rolümde 1433 bağlantı noktası açık. Bağlantımın sorunu ne?

Yanıtlar:


368

SQL VM'nizin güvenilir kök deposunda yüklü bir CA imzalı sertifikanız yoktur.

Eğer varsa Encrypt=Truebağlantı dizesinde off (önerilmez) veya bağlantı dizesinde aşağıdaki eklemek ya set:

TrustServerCertificate=True

SQL Server, kullanması için bir tane yüklemezseniz kendinden imzalı bir sertifika oluşturur, ancak bağlantı dizesine herhangi bir sunucu sertifikasına güvenmesini söylemediğiniz sürece, CA imzalı olmadığı için arayan tarafından güvenilmez. varsayılan.

Uzun vadede, bilinen bir güvenilir CA'dan ücretsiz olarak CA imzalı bir sertifika almak ve VM'ye yüklemek için Let's Encrypt'in kullanılmasını öneriyorum . Otomatik olarak yenilenecek şekilde ayarlamayı unutmayın. Bu konuda SQL Server kitaplarında "Şifreleme Hiyerarşisi" ve "Doğrulamasız Şifrelemeyi Kullanma" başlığı altında daha fazla bilgi bulabilirsiniz.


1
üzgünüm benim kötü, TTrusted_Connection = Bağlantı dizesinde yanlış ayarlandı. doğru yapmak benim için işe yarıyor. Yine de Thanx
ZafarYousafi

1
@ZafarYousafi bu cevabı doğru olarak işaretlemelisiniz.
Termato

5
Bu tavsiye ayarına iyi değil TrustServerCertificateiçin true--Bu devre dışı bırakır sertifika kontrolü. Bu sadece ayar daha iyidir Encryptiçin false!
Matt Thomas

5
Bu cevapta verilen "TrustServerCertificate = True" tavsiyesi problemi ortadan kaldırabilir, ama bu korkunç bir tavsiye. Belirtileri DEĞİL, nedeni düzeltin. Cevabın, CA imzalı bir sertifika yüklemeyi öneren diğer kısmı da gitmenin yolu.
Mitch Wheat

SSMS'nin yeni sürümlerinde "Bağlantı Özellikleri" Sekmesinde "Güven sunucusu sertifikası" adlı küçük bir seçenek bulabilirsiniz. Bu çocuğu kontrol etmek, yukarıda listelenen komutlarla aynı etkiye sahiptir.
gwynbleidd

87

SQL Management Studio kullanıyorsanız, lütfen bağlantı özelliklerine gidin ve "Güven sunucusu sertifikalı" seçeneğini tıklayın SQL Management Studio kullanıyorsanız, lütfen bağlantı özelliklerine gidin ve "Güven sunucusu sertifikalı" seçeneğini tıklayın


18
Kendi başına kötü bir tavsiye değil. Bir geliştirme sunucusuna bağlanmanız ve kodlama gibi işinizi yapmanız gerektiğinde kullanabileceğinizi söyleyebilirim. Bir yazılım geliştiricisi olarak, işleri hızlı bir şekilde düzeltmek için vakti olmayan DevOps ile sürekli mücadele ediyorum ve son teslim tarihlerine karşı değerli zaman harcayamam. Bu seçeneği kapatmak için veri maruziyetini tartmak, yerel veya uzaksa, yöneticilerin kurulumunu, IP kısıtlamalarını ve diğer geçici çözümlerle kolayca azaltılabilen ortamınıza bağlıdır. Altyapınız hakkında biraz bilgi sahibi olmadan bunun kötü bir tavsiye olduğunu söyleyemezsiniz.
OrizG

Az önce günümü kurtardın. Thanks @ ct.tan
Milinda Wickramasinghe

@OrizG Yerel bir makinede yüklü bir SQL Serverım var ve bunu kişisel projeler için kullanıyorum. Şu anda, onunla bir kuruş harcamak istemiyorum, bu yüzden kendime ücretsiz bir ev sahibi aldım ve sunucuyu sertifikaları imzaladığım ve sunucu ile istemciler arasında değiştirdiğim şekilde yapılandırmaya çalıştım. erişmek için kullanacaksınız. Ancak, ücretsiz ev sahibi nedeniyle bunu Let's Encrypt ile başaramadım. Bu çözümün, güvenilir CA imzalı sertifikalarla doğru bir şekilde, sertifika değişiminin doğru şekilde yapılmasına kıyasla dezavantajları nelerdir?
ccoutinho

31

SSMS kullanarak bağlanmaya çalışırken bu hata mesajını görüyorsanız TrustServerCertificate=True, Ek Bağlantı Parametrelerine ekleyin .


23
Mitch, aynı soruyu bu sorunun üç cevabı için yaptın. Bunun neden "gerçekten, gerçekten kötü tavsiye" olduğuna ilişkin bazı önemli bilgiler veya bağlantı sağladıysanız diğer okuyuculara yardımcı olabilir.
Ayakkabısız

@Shoeless Kabul edilen cevap hakkında birkaç yorum açıklıyor.
Tom Blodget

4

Visual Studio 2015'te Veri Bağlantıları aracılığıyla erişmeye çalışıyorsanız ve yukarıdaki Hatayı alıyorsanız, Gelişmiş'e gidin ve TrustServerCertificate=True hatanın giderilmesini ayarlayın .


9
Kendi başına kötü bir tavsiye değil. Bir geliştirme sunucusuna bağlanmanız ve kodlama gibi işinizi yapmanız gerektiğinde kullanabileceğinizi söyleyebilirim. Bir yazılım geliştiricisi olarak, işleri hızlı bir şekilde düzeltmek için vakti olmayan DevOps ile sürekli mücadele ediyorum ve son teslim tarihlerine karşı değerli zaman harcayamam. Bu seçeneğin kapatılmasıyla ilgili veri maruziyetinin tartılması, yerel veya uzaksa, yöneticilerin nasıl kurulduğuna, IP kısıtlamalarına ve diğer geçici çözümlerle kolayca azaltılabilen ortamınıza bağlıdır. Altyapınız hakkında biraz bilgi sahibi olmadan bunun kötü bir tavsiye olduğunu söyleyemezsiniz.
OrizG

1

IIS'den SQLServer'a erişirken aynı sorundan etkilendi. TrustServerCertificate = True eklenmesi yardımcı olmadı.

MS belgelerinde bir yorum görülebilir: SQLServer hizmet hesabının kullandığınız TLS Sertifikasına erişimi olduğundan emin olun. (NT Hizmeti \ MSSQLSERVER)

Kişisel depoyu açın ve sertifikaya sağ tıklayın -> özel anahtarları yönetin -> SQL hizmet hesabını ekleyin ve tam kontrol sağlayın.

SQL hizmetini yeniden başlatın. İşe yaradı.


0

Aynı şey ssms istemcisinin kendisinden de elde edilebilir. Sadece ssms dosyasını açın, sunucu adını girin ve ardından bağlantı özellikleri altındaki seçeneklerden Güven sunucusu sertifikasının işaretli olduğundan emin olun.


0

Bu sorunu SSMS üzerinden Excel verilerini SQLDatabase'e aktarırken aldım. Çözüm,TrustServerCertificate = True güvenlik bölümünde


0

Bağlantımın Güven sunucu sertifikası kontrol edilmiş TrustServerCertificate=Trueolmasına ve Gelişmiş Bölüm'e eklenmiş olsam da profili oluşturmaya çalışırken bu hatayla karşılaştım . Yönetici olarak çalışan bir SSMS örneğine geçtim ve profil oluşturucu sorunsuz bir şekilde başladı. (Daha önce yerel bağlantımın bile bağlanmak için uzun zaman aldığını, yönetici olarak çalıştığını fark etmiştim).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.