TLS 1.2'ye yükselttikten sonra SSL hataları bildirilir

Bu makalede, SQL Server'da TLS 1.2'ye yükseltildikten sonra karşılaşabileceğiniz Güvenli Yuva Katmanı (SSL) hataları hakkında bilgi sağlanır. Ayrıca, verileri el ile alabildiğiniz yöntemleri de listeler. Ayrıca SQLCHECK aracını çalıştırabilir ve SQLCHECK günlük dosyasındaki bilgileri gözden geçirebilirsiniz.

Belirtiler

TLS protokolunu TLS 1.2'ye yükselttikten sonra aşağıdaki sorunları görebileceğiniz aşağıdaki senaryoyu göz önünde bulundurun.

  • Microsoft SQL Server, zayıf karma algoritması tarafından imzalanan bir sertifika kullanır. Bu tür sertifikalar MD5, SHA224 ve SHA512'yi içerir.

  • TLS 1.2 yükseltmeleri yalnızca istemciye veya sunucuya uygulandı ancak her ikisi de uygulanmadı.

  • TLS 1.0 devre dışı bırakıldı.

  • İstemci ile sunucu arasında eşleşen şifreleme algoritması yok.

Bu senaryoda, yükseltme tamamlandıktan sonra aşağıdaki sorunlarla karşılaşırsınız:

  • Sunucu sertifikasını etkileyen sorunlar, istemci bilgisayarlardan gelen yerel bağlantıları ve bağlantıları da etkiler. Daha fazla bilgi için bkz . SQL Server Bağlantılarını Şifreleme.

  • Uygulama aşağıdaki hata iletilerinden birini oluşturabilir:

    Adlandırılmış Kanallar

    Sunucuyla başarıyla bağlantı kuruldu ancak oturum açma işlemi sırasında bir hata oluştu. (sağlayıcı: SSL Sağlayıcısı, hata: 0 - Borunun diğer ucunda işlem yok) Microsoft SQL Server, Hata: 233.

    TCP

    Sunucuyla başarıyla bağlantı kuruldu ancak oturum açma işlemi sırasında bir hata oluştu. (sağlayıcı: SSL Sağlayıcısı, hata: 0 - Bağlantı uzak konak 10054 tarafından zorla kapatıldı) Microsoft SQL Server, Hata: 233.

Ağ yakalamanız varsa, sunucunun bağlantıyı kapatarak pakete Client Hello yanıt verdiğini gösteren aşağıdaki ekran görüntüsüne benzer olabilir.

Sunucunun İstemci Hello paketine nasıl yanıt verdiğini gösteren ağ yakalama işleminin ekran görüntüsü.

Çözüm

Bu hataları düzeltmek için şu adımları izleyin:

  1. SQL Server Yapılandırma Yöneticisi açın, InstanceName için Protokoller'e sağ tıklayın ve özellikler'i<.>

  2. Sertifika sekmesini seçin ve hangi sertifikanın kullanıldığını denetleyin.

    Hangi sertifikanın kullanıldığını gösteren Sertifika sekmesinin ekran görüntüsü.

    • Bir sertifika varsa, incelemek için Görünüm'ü seçin ve ardından Temizle'yi seçin. Ardından 4. adıma gidin.

    • Sertifika yoksa, karma kodu almak için SQL Server hata günlüğü dosyasını inceleyin. Aşağıdaki girdilerden birini görebilirsiniz:

      2023-05-30 14:59:30.89 spid15s The certificate [Cert Hash(sha1) "AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00"] was successfully loaded for encryption. veya 2023-05-19 04:58:56.42 spid11s A self-generated certificate was successfully loaded for encryption. Sertifika kendi kendine oluşturulduysa 2. adıma geçin.

  3. Microsoft Yönetim Konsolu'nda (MMC) Bilgisayar Sertifika Deposu'nu açın.

    1. Kişisel Sertifikalar'a gidin.

    2. Amaçlanan Amaçlar sütununu genişletin ve sunucu kimlik doğrulaması için etkinleştirilmiş sertifikalara çift tıklayın.

    3. Parmak izinin hata günlüğü dosyasındaki parmak iziyle eşleşip eşleşmediğini denetleyin. Aksi takdirde başka bir sertifika deneyin.

    4. İmza karması algoritmasını denetleyin. MD5, SHA224 veya SHA512 ise TLS 1.2'yi desteklemez. Zayıf algoritmalardan biriyse, SQL Server'ın kullanamamaması için Sunucu Kimlik Doğrulamasını devre dışı bırakın.

    5. Sertifika SQL Server Yapılandırma Yöneticisi açıkça belirtilmişse, kaldırmak için Temizle'yi seçin.

    6. MMC'de sertifikayı bulun.

    7. MMC'de sertifikaya sağ tıklayın ve özellikler'i seçin.

    8. Genel sekmesinde sertifikayı tamamen devre dışı bırakın veya Sunucu Kimlik Doğrulaması'nı seçmeli olarak devre dışı bırakın.

      SQL Server Yapılandırma Yöneticisi Özellikler'i seçin.

  4. Değişiklikleri kaydedin.

  5. SQL Server'i yeniden başlatın.

    Hata günlüğü artık kendi kendine oluşturulan bir sertifikanın kullanıldığını göstermelidir. Sorun çözülürse, SQL Server otomatik olarak imzalanan sertifikayı kullanarak başarıyla çalışabilir. Verisign veya başka bir sertifika istiyorsanız, sertifika sağlayıcısından TLS 1.2 için uygun güçlü bir karma kullanıldığından emin olmasını istemeniz gerekir. Sorun çözülmezse 2. adıma dönün.

Etkin ve devre dışı TLS protokollerini denetleme

Etkinleştirilen ve devre dışı bırakılan TLS protokollerini denetlemek için şu adımları izleyin:

  1. Bunu henüz yapmadıysanız Arka Plan ve Temel Yükseltme İş Akışı'nı denetleyin.

    TLS 1.2'yi zorunlu kılmak için hem istemci hem de sunucu yükseltilmelidir. Gerekirse sunucuyu yükseltebilir ancak yükseltilmeyen istemcilerin bağlanabilmesi için TLS 1.0'ı etkin bırakabilirsiniz.

  2. REGEDIT kullanarak SSL veya TLS kayıt defterini denetleyin.

    Etkin ve devre dışı bırakılmış SSL veya TLS sürümlerini aşağıdaki kayıt defteri alt anahtarı altında bulabilirsiniz:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

    SSL veya TLS'nin her sürümü için istemci ve sunucu alt anahtarları vardır ve her ikisi de Etkin ve Devre Dışı değerlerine sahiptir:

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    Not

    Sıfır olmayan tüm değerler TRUE olarak değerlendirilir. Ancak genellikle FFFFFFFF (veya -1) yerine 1 tercih edilir.

  3. Uyumsuz ayar olmadığından emin olun.

    Örneğin, TLS 1.0 devre dışı bırakılır ve sunucuda TLS 1.2 etkinleştirilir. Bunun nedeni, bu ayarların istemcideki ayarlarla eşleşmemesi veya istemci sürücüsünün güncelleştirilmemesidir.

    TLS 1.2 ayarını Enabled=0 yaparak (ve devre dışı bırakılmışsa TLS 1.0'ı yeniden etkinleştirerek) bu durumu test edebilirsiniz.

  4. Sorunun TLS 1.2 ile ilgili olup olmadığını veya genel bir sorun olup olmadığını denetlemek için SQL Server'ı yeniden başlatın.

Eşleşen şifreleme paketleri yok

ve paketlerinde Client HelloServer Hello istemci ve sunucu TLS sürümlerini ve şifre paketlerini inceleyebilirsiniz. Paket Client Hello tüm istemci şifreleme paketlerini tanıtır ve Server Hello paket bir şifre paketi belirtir. Eşleşen paket yoksa, sunucu paketi göndererek Server Hello yanıt vermek yerine bağlantıyı kapatır.

Paketlerin eşleşip eşleşmediğini belirlemek için inceleyebileceğiniz şifre paketi ayrıntılarının ekran görüntüsü.

Bir ağ izlemesi kullanılamıyorsa, aşağıdaki kayıt defteri alt anahtarı altında işlev değerini de kontrol edebilirsiniz:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002

Eşleşen algoritma görmüyorsanız Microsoft Desteği başvurun. Destek mühendisine yardımcı olmak için, Gelişmiş SSL Veri Yakalama'da belirtildiği gibi ağ izlemelerini veya BID izlemelerini yakalayın.