Aracılığıyla paylaş


SQL Server için sertifika gereksinimleri

Bu makalede SQL Server için sertifika gereksinimleri ve bir sertifikanın bu gereksinimleri karşılayıp karşılamadığı nasıl denetlenir açıklanmaktadır.

SQL Server şifrelemesi için sertifika gereksinimleri

SQL Server şifrelemesi için Aktarım Katmanı Güvenliği'ni (TLS) kullanmak için aşağıdaki koşulları karşılayan bir sertifika (üç dijital türden biri) sağlamanız gerekir:

  • Sertifika yerel bilgisayar sertifika deposunda veya SQL Server hizmet hesabı sertifika deposunda olmalıdır. SQL Server başlangıç hesabı değişiklikleriyle sertifikaların yeniden yapılandırılmasını önlediğinden yerel bilgisayar sertifika deposu önerilir.

  • SQL Server hizmet hesabının TLS sertifikasına erişmek için gerekli izne sahip olması gerekir. Daha fazla bilgi için bkz. Sertifikayı içeri aktararak SQL Server bağlantılarını şifreleme.

  • Geçerli sistem zamanı, özellik "Geçerli başlangıç" değerinden sonra ve özellik "Geçerli bitiş" değerinden önce olmalıdır. Daha fazla bilgi için bkz. Süresi Dolan Sertifikalar.

    Uyarı

    Sertifika, sunucu kimlik doğrulaması için tasarlanmalıdır. Bu, Sunucu Kimlik Doğrulaması (1.3.6.1.5.5.7.3.1)belirtmek için sertifikanın Gelişmiş Anahtar Kullanımı özelliğini gerektirir.

  • Sertifika, KeySpecAT_KEYEXCHANGE seçeneği kullanılarak oluşturulmalıdır. Bu, özel anahtarı depolamak için eski Şifreleme Depolama Sağlayıcısı kullanan bir sertifika gerektirir. Genellikle sertifikanın anahtar kullanım özelliği (KEY_USAGE) anahtar şifrelemesi (CERT_KEY_ENCIPHERMENT_KEY_USAGE) ve dijital imza (CERT_DIGITAL_SIGNATURE_KEY_USAGE) içerir.

  • Konu Alternatif Adı, istemcilerinizin bir SQL Server örneğine bağlanmak için kullanabileceği tüm adları içermelidir.

İstemcinin sunucu tarafından kullanılan sertifikanın sahipliğini doğrulayabilmesi gerekir. İstemci, sunucu sertifikasını imzalayan sertifika yetkilisinin ortak anahtar sertifikasına sahipse, başka yapılandırma gerekmez. Microsoft Windows, birçok sertifika yetkilisinin ortak anahtar sertifikalarını içerir. Sunucu sertifikası, istemcinin ortak anahtar sertifikasına sahip olmadığı bir ortak veya özel sertifika yetkilisi tarafından imzalandıysa, SQL Server'a bağlanacak her istemciye sunucu sertifikasını imzalayan sertifika yetkilisinin ortak anahtar sertifikasını yüklemeniz gerekir.

Önemli

SQL Server, bilgisayar sertifika deposunda sadece yukarıdaki listedeki bazı gereksinimleri karşılayan bir sertifika varsa ve bu sertifika SQL Server Configuration Manager veya kayıt defteri girdileri aracılığıyla kullanım için el ile yapılandırılmış ise başlatılamaz. Tüm gereksinimleri karşılayan başka bir sertifika seçin veya sql server tarafından oluşturulan otomatik olarak imzalanan sertifikalar açıklandığı gibi, gereksinimleri karşılayan bir sertifika sağlayana veya kendi kendine oluşturulan bir sertifikayı kullanana kadar sertifikayı SQL Server tarafından kullanılmaktan kaldırın.

AlwaysOn kullanılabilirlik grubu

SQL Server örneğiniz Always On kullanılabilirlik grubunun parçasıysa, sertifikanızı oluşturmak için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  • Yöntem 1: Kullanılabilirlik grubunun tüm çoğaltmalarında bir sertifika kullanın. Ortak ad keyfi olarak seçilebilir, bu nedenle herhangi bir yer tutucu bir değer olabilir. Kullanılabilirlik grubundaki tüm SQL Server çoğaltmalarının konak adı ve FQDN'sinin ve kullanılabilirlik grubu dinleyici adlarının sertifikanın Konu Alternatif Adı'na eklenmesi gerekir. Özgün sertifika oluşturulduktan sonra kullanılabilirlik grubuna ek çoğaltmalar eklenirse, sertifikanın tüm çoğaltmaların adlarıyla yeniden oluşturulması ve her çoğaltmaya yeniden aktarılması gerekir. Sertifika, genel veya resmi bir Sertifika Yetkilisi (CA) tarafından imzalanmadığı sürece, kullanılabilirlik grubu çoğaltmasına veya kullanılabilirlik grubu dinleyicisine bağlanan tüm istemcilerde sertifika deposuna da aktarılmalıdır. Kullanılabilirlik grubu çoğaltmalarını ve dinleyici adlarını sertifikaya eklemezseniz, kullanılabilirlik grubuna bağlanırken bağlantı dizesinin değerlerinden birini veya sertifikanın yolunu HostNameInCertificate değerlerine eklemeniz gerekir. Önerilen yaklaşım, sertifikada adların belirtilmesidir.

    Aşağıda, test1.<your company>.com ve test2.<your company>.com adlı iki sunucuya ve aglistener.<your company>.com adlı bir kullanılabilirlik grubu dinleyicisine sahip bir kullanılabilirlik grubu için doğru yapılandırılmış bir sertifikayı tanımlayan özelliklere bir örnek verilmiştir:

    CN = <hostname is recommended but not required when certificates are configured using SQL Server Configuration Manager>
    DNS Name = aglistener.<your company>.com 
    DNS Name = test1.<your company>.com
    DNS Name = test2.<your company>.com
    DNS Name = aglistener
    DNS Name = test1
    DNS Name = test2
    
  • Yöntem 2: Kullanılabilirlik grubunun her çoğaltması için ayrı bir sertifika kullanın. Bir sertifika oluşturulduktan sonra kullanılabilirlik grubuna çoğaltma eklemek, ayrı sertifikalar kullanırken daha kolaydır, ancak var olan tüm çoğaltmalardaki tüm sertifikaları değiştirmek yerine yalnızca yeni çoğaltma için bir sertifika oluşturmanız gerekir. Ortak ad keyfi olarak seçilebilir, bu nedenle herhangi bir yer tutucu bir değer olabilir. İlgili SQL Server örneğinin ana bilgisayar adı ve FQDN'sinin ve kullanılabilirlik grubu dinleyici adlarının ilgili her çoğaltma için sertifikanın Konu Alternatif Adı'na eklenmesi gerekir. Her sertifikayı ilgili çoğaltmasına aktarın ve sertifika bir genel veya resmi Sertifika Yetkilisi (CA) tarafından imzalanmadığı sürece, tüm sertifikaları çoğaltmalara veya kullanılabilirlik grubu dinleyicisine bağlanan tüm istemcilerdeki tüm sertifika depolarına aktarın.

    İki örnek test1.<your company>.com ve test2.<your company>.com ile aglistener.<your company>.com adında bir kullanılabilirlik grubu dinleyicisine sahip bir kullanılabilirlik grubu için doğru yapılandırılmış sertifikaları tanımlayan özelliklere şu örnekler verilebilir:

    Test1'de sertifika:

    CN= <hostname is recommended but not required when certificates are configured using SQL Server Configuration Manager>
    DNS Name= test1.<your company>.com 
    DNS Name= aglistener.<your company>.com
    DNS Name= aglistener
    DNS Name= test1
    

    Test2'de sertifika:

    CN= <hostname is recommended but not required when certificates are configured using SQL Server Configuration Manager>
    DNS Name= test2.<your company>.com 
    DNS Name= aglistener.<your company>.com 
    DNS Name= aglistener
    DNS Name= test2 
    

Yük devretme kümesi örneği

SQL Server bir yük devretme kümesi örneği olarak yapılandırılmışsa, sunucu sertifikasını konak adıyla veya sanal sunucunun tam DNS adıyla (FQDN) yük devretme kümesindeki tüm düğümlere yüklemeniz gerekir. ve sertifikaların yük devretme kümesinin tüm düğümlerinde sağlanması gerekir. Örneğin, ve test1.<your company>.comadlı test2.<your company>.com düğümleri olan iki düğümlü bir kümeniz varsa ve virtsql adlı bir sanal sunucunuz varsa, her iki düğüme de için virtsql.<your company>.com bir sertifika yüklemeniz gerekir.

Bağlantıları şifrelemek için SQL Server Veritabanı Altyapısını Yapılandırma bölümünde belgelenen sırayla sertifikayı yük devretme kümesine aktarın.

Aşağıda, bir yük devretme kümesi örneği için doğru yapılandırılmış bir sertifika tanımlayan özelliklere bir örnek verilmiştir:

CN = virtsql.<your company>.com
DNS Name = virtsql.<your company>.com
DNS Name = virtsql

SQL kümeleri hakkında daha fazla bilgi için bkz. Yük Devretme Kümelemesini Yüklemeden Önce.

Sertifikanın gereksinimleri karşılayıp karşılamadiğini denetleme

SQL Server 2019 (15.x) ve sonraki sürümlerinde SQL Server Configuration Manager, yapılandırma aşamasının kendisi sırasında tüm sertifika gereksinimlerini otomatik olarak doğrular. Bir sertifika yapılandırdıktan sonra SQL Server başarıyla başlatılırsa, SQL Server'ın bu sertifikayı kullanabileceğinin iyi bir göstergesidir. Ancak bazı istemci uygulamalarının şifreleme için kullanılabilecek sertifikalar için başka gereksinimleri olabilir ve kullanılan uygulamaya bağlı olarak farklı hatalarla karşılaşabilirsiniz. Bu senaryoda, konu hakkında daha fazla bilgi için istemci uygulamasının destek belgelerini denetlemeniz gerekir.

SQL Server ile kullanmak üzere sertifikanın geçerliliğini denetlemek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  • sqlcheck aracı : sqlcheck, geçerli bilgisayar ve hizmet hesabı ayarlarını inceleyen ve Konsol penceresine çeşitli bağlantı hatalarını gidermek için yararlı olan bir metin raporu oluşturan bir komut satırı aracıdır. Çıktı, sertifikalarla ilgili olarak aşağıdaki bilgilere sahiptir:

    Details for SQL Server Instance: This Certificate row in this section provides more details regarding the certificate being used by SQL Server (Self-generated, hard-coded thumbprint value, etc.).
    
    Certificates in the Local Computer MY Store: This section shows detailed information regarding all the certificates found in the computer certificate store.
    

    Aracın özellikleri hakkında daha fazla bilgi ve indirme yönergeleri için CSS_SQL_Networking_Tools wikisayfasına bakın.

  • certutil aracı: certutil.exe, Sertifika Hizmetleri'nin bir parçası olarak yüklenen bir komut satırı programıdır. sertifika bilgilerini dökümü ve görüntülemek için certutil.exe kullanabilirsiniz. Ayrıntılı bilgi almak için -v seçeneğini kullanın. Daha fazla bilgi için bkz. certutil.

  • Sertifikalar ek bileşeni: Bilgisayardaki çeşitli sertifika depolarındaki sertifikalar hakkında daha fazla bilgi görüntülemek için Sertifikalar ek bileşeni penceresini de kullanabilirsiniz. Ancak bu araç KeySpec bilgileri göstermez. MMC ek bileşeniyle sertifikaları görüntüleme hakkında daha fazla bilgi için bkz. nasıl yapılır: MMC ek bileşeniyle sertifikaları görüntüleme .

Ana bilgisayar adına farklı bir ada sahip bir sertifikayı içeri aktarma

Şu anda, yalnızca sertifikanın konu adı bilgisayarın ana bilgisayar adıyla eşleşiyorsa SQL Server Configuration Manager'ı kullanarak sertifikayı içeri aktarabilirsiniz.

Farklı bir konu adına sahip bir sertifika kullanmak istiyorsanız şu adımları izleyin:

  1. Sertifikalar ek bileşenini kullanarak sertifikayı yerel bilgisayar sertifika deposuna aktarın.

  2. SQL Server Configuration Manager'da SQL Server Ağ Yapılandırması'nı genişletin, SQL Server örneğine sağ tıklayın ve özellikler'i seçerek instance_name< Özellikleri için >Protokoller iletişim kutusunu açın.

  3. Sertifika sekmesinde, Sertifika açılan listesinden sertifika deposuna içeri aktardığınız sertifikayı seçin:

    SQL Server Configuration Manager'da özellikler iletişim kutusunun sertifika sekmesinin ekran görüntüsü.

Farklı bir ada sahip bir sertifikanın ana bilgisayar adına aktarılması aşağıdaki hata iletisiyle sonuçlanır.

The selected certificate name does not match FQDN of this hostname. This property is required by SQL Server
Certificate name: random-name
Computer name: sqlserver.domain.com

Süresi dolan sertifikalar

SQL Server yalnızca yapılandırma sırasında sertifikaların geçerliliğini denetler. Örneğin, süresi dolmuş bir sertifika sağlamak için SQL Server 2019 (15.x) ve sonraki sürümlerde SQL Server Configuration Manager'ı kullanamazsınız. Sertifikanın süresi zaten sağlandıktan sonra dolarsa SQL Server sorunsuz çalışmaya devam eder. Ancak, Power BI gibi bazı istemci uygulamaları her bağlantıda sertifikanın geçerliliğini denetler ve SQL Server örneği şifreleme için süresi dolmuş bir sertifika kullanacak şekilde yapılandırılmışsa bir hata oluşturur. SQL Server şifrelemesi için süresi dolmuş bir sertifika kullanmamanızı öneririz.

Sonraki adım