Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln beskrivs certifikatkraven för SQL Server och hur du kontrollerar om ett certifikat uppfyller dessa krav.
Certifikatkrav för SQL Server-kryptering
För att använda TLS (Transport Layer Security) för SQL Server-kryptering måste du etablera ett certifikat (en av de tre digitala typerna) som uppfyller följande villkor:
Certifikatet måste finnas i certifikatarkivet för den lokala datorn eller i SQL Server-tjänstkontots certifikatarkiv. Vi rekommenderar lokalt datorcertifikatarkiv eftersom det undviker att konfigurera om certifikat med ändringar i SQL Server-startkontot.
SQL Server-tjänstkontot måste ha nödvändig behörighet för att få åtkomst till TLS-certifikatet. Mer information finns i Kryptera anslutningar till SQL Server genom att importera ett certifikat.
Den aktuella systemtiden måste vara efter värdet för egenskapen Giltig från och före värdet för egenskapen Giltig till för certifikatet. Mer information finns i Förfallna certifikat.
Anmärkning
Certifikatet måste vara avsett för serverautentisering. Detta kräver egenskapen Utökad nyckelanvändning för certifikatet för att ange serverautentisering (1.3.6.1.5.5.7.3.1).
Certifikatet måste skapas med alternativet
KeySpecAT_KEYEXCHANGE. Detta kräver ett certifikat som använder en äldre kryptografisk lagringsprovider för att lagra den privata nyckeln. Vanligtvis innehåller certifikatets nyckelanvändningsegenskap (KEY_USAGE) även nyckelchiffrering (CERT_KEY_ENCIPHERMENT_KEY_USAGE) och en digital signatur (CERT_DIGITAL_SIGNATURE_KEY_USAGE).Alternativt namn på certifikatmottagare bör innehålla alla namn som klienterna kan använda för att ansluta till en SQL Server-instans.
Klienten måste kunna verifiera ägarskapet för det certifikat som används av servern. Om klienten har certifikatet för den offentliga nyckeln för certifikatutfärdare som signerade servercertifikatet krävs ingen ytterligare konfiguration. Microsoft Windows innehåller certifikat för offentliga nycklar från många certifikatutfärdare. Om servercertifikatet har signerats av en offentlig eller privat certifikatutfärdare som klienten inte har certifikatet för offentlig nyckel för, måste du installera certifikatet för den offentliga nyckel för certifikatutfärdare som signerade servercertifikatet på varje klient som ska ansluta till SQL Server.
Viktigt!
SQL Server startar inte om det finns ett certifikat i datorlagret, men uppfyller bara vissa krav i listan ovan och om det är manuellt konfigurerat för användning av SQL Server Configuration Manager eller genom registerposter. Välj ett annat certifikat som uppfyller alla krav eller ta bort certifikatet från att användas av SQL Server tills du kan etablera ett som uppfyller kraven eller använda ett självgenererat certifikat enligt beskrivningen i SQL Server-genererade självsignerade certifikat.
AlwaysOn-tillgänglighetsgrupp
Om SQL Server-instansen ingår i en AlwaysOn-tillgänglighetsgrupp kan du använda någon av följande metoder för att skapa certifikatet:
Metod 1: Använd ett certifikat på alla repliker i tillgänglighetsgruppen. Det gemensamma namnet är godtyckligt så kan vara valfritt platshållarvärde. Värdnamnet och det fullständiga domännamnet för alla SQL Server-repliker i tillgänglighetsgruppen och tillgänglighetsgruppens lyssnarnamn ska ingå i certifikatets alternativa ämnesnamn . Om ytterligare repliker läggs till i tillgänglighetsgruppen när det ursprungliga certifikatet har genererats måste certifikatet återskapas med namnen på alla repliker och importeras på nytt till varje replik. Certifikatet måste också importeras till certifikatarkivet på alla klienter som ansluter till tillgänglighetsgruppens replik eller tillgänglighetsgrupplyssnare, såvida inte certifikatet är signerat av en offentlig eller officiell certifikatutfärdare (CA). Om du inte inkluderar tillgänglighetsgruppens repliker och lyssnarnamn i certifikatet måste du inkludera ett av värdena i alternativt namn på certifikatmottagaren i
HostNameInCertificateeller sökvägen till certifikatet i anslutningssträngensServerCertificatevärden när du ansluter till tillgänglighetsgruppen. Att ange namn i certifikatet är den rekommenderade metoden.Följande är ett exempel på de egenskaper som definierar ett korrekt konfigurerat certifikat för en tillgänglighetsgrupp med två servrar med namnet
test1.<your company>.comochtest2.<your company>.com, och en tillgänglighetsgruppslyssnare med namnetaglistener.<your company>.com: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 = test2Metod 2: Använd ett separat certifikat för varje replik av tillgänglighetsgruppen. Det är enklare att lägga till repliker i en tillgänglighetsgrupp när ett certifikat har genererats när du använder separata certifikat eftersom du bara behöver generera ett certifikat för den nya repliken, i stället för att ändra alla certifikat på alla befintliga repliker. Det gemensamma namnet är godtyckligt så kan vara valfritt platshållarvärde. Värdnamnet och FQDN för respektive SQL Server-instans och tillgänglighetsgruppens lyssnarnamn måste ingå i certifikatets alternativa namn för certifikatet för respektive replik. Importera varje certifikat till respektive replik och importerasedan alla certifikat till alla certifikatarkiv på alla klienter som ansluter till replikerna eller tillgänglighetsgruppens lyssnare, såvida inte certifikatet är signerat av en offentlig eller officiell certifikatutfärdare.
Följande är exempel på de egenskaper som definierar korrekt konfigurerade certifikat för en tillgänglighetsgrupp med två instanser med namnet
test1.<your company>.comochtest2.<your company>.com, och en lyssnare för tillgänglighetsgruppen med namnetaglistener.<your company>.com:Certifikat på test1:
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= test1Certifikat på test2:
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
Failoverklusterinstans
Om SQL Server har konfigurerats som en redundansklusterinstans måste du installera servercertifikatet med värdnamnet eller det fullständigt kvalificerade DNS-namnet (FQDN) för den virtuella servern på alla noder i redundansklustret. och certifikaten måste etableras på alla noder i redundansklustret. Om du till exempel har ett kluster med två noder med namnet test1.<your company>.com och test2.<your company>.com, och du har en virtuell server med namnet virtsql, måste du installera ett certifikat för virtsql.<your company>.com på båda noderna.
Importera certifikatet till redundansklustret i sekvensen som beskrivs i Konfigurera SQL Server Database Engine för kryptering av anslutningar.
Följande är ett exempel på de egenskaper som definierar ett korrekt konfigurerat certifikat för en redundansklusterinstans:
CN = virtsql.<your company>.com
DNS Name = virtsql.<your company>.com
DNS Name = virtsql
Mer information om SQL-kluster finns i Innan du installerar redundanskluster.
Kontrollera om ett certifikat uppfyller kraven
I SQL Server 2019 (15.x) och senare versioner validerar SQL Server Configuration Manager automatiskt alla certifikatkrav under själva konfigurationsfasen. Om SQL Server startar när du har konfigurerat ett certifikat är det en bra indikation på att SQL Server kan använda certifikatet. Men vissa klientprogram kan fortfarande ha andra krav för certifikat som kan användas för kryptering, och du kan uppleva olika fel beroende på vilket program som används. I det scenariot måste du kontrollera klientprogrammets supportdokumentation för mer information om ämnet.
Du kan använda någon av följande metoder för att kontrollera certifikatets giltighet för användning med SQL Server:
sqlcheck-verktyget:
sqlcheckär ett kommandoradsverktyg som undersöker de aktuella dator- och tjänstkontoinställningarna och skapar en textrapport till konsolfönstret som är användbart för att felsöka olika anslutningsfel. Utdata har följande information om certifikat: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.Mer information om verktygets funktioner och instruktioner för nedladdning finns i Välkommen till CSS_SQL_Networking_Tools wiki.
certutil-verktyget:
certutil.exeär ett kommandoradsprogram som installeras som en del av Certificate Services. Du kan använda certutil.exe för att dumpa och visa certifikatinformation. Använd alternativet-vför att få detaljerad information. Mer information finns i certutil.Snapin-modul för certifikat: Du kan också använda snapin-modulen Certifikat för att visa mer information om certifikat i olika certifikatarkiv på datorn. Men det här verktyget visar inte
KeySpecinformation. Mer information om hur du visar certifikat med MMC-snapin-modulen finns i Så här visar du certifikat med MMC-snapin-modulen.
Importera ett certifikat med ett annat namn än värdnamnet
För närvarande kan du bara importera ett certifikat med hjälp av SQL Server Configuration Manager om certifikatets ämnesnamn matchar datorns värdnamn.
Följ dessa steg om du vill använda ett certifikat med ett annat ämnesnamn:
Importera certifikatet till det lokala datorcertifikatarkivet med hjälp av snapin-modulen Certifikat.
I SQL Server Configuration Manager expanderar du SQL Server Network Configuration genom att högerklicka på instansen av SQL Server och sedan välja Egenskaper för att öppna dialogrutan Protokoll för <instance_name> Egenskaper .
På fliken Certifikat väljer du det certifikat som du har importerat till certifikatarkivet i listrutan Certifikat :
Om du importerar ett certifikat med ett annat namn än värdnamnet visas följande felmeddelande:
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
Certifikat som har upphört att gälla
SQL Server kontrollerar endast certifikatens giltighet vid tidpunkten för konfigurationen. Du kan till exempel inte använda SQL Server Configuration Manager på SQL Server 2019 (15.x) och senare versioner för att etablera ett utgånget certifikat. SQL Server fortsätter att köras utan problem om certifikatet upphör att gälla när det redan har etablerats. Men vissa klientprogram som Power BI kontrollerar certifikatets giltighet för varje anslutning och skapar ett fel om SQL Server-instansen har konfigurerats för att använda ett utgånget certifikat för kryptering. Vi rekommenderar att du inte använder ett utgånget certifikat för SQL Server-kryptering.
Nästa steg
- Konfigurera SQL Server Database Engine för att kryptera anslutningar genom att importera ett certifikat.