Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a SQL Server tanúsítványkövetelményét ismerteti, és azt, hogyan ellenőrizheti, hogy egy tanúsítvány megfelel-e ezeknek a követelményeknek.
A SQL Server titkosítás tanúsítványkövetelményei
A Transport Layer Security (TLS) SQL Server titkosításhoz való használatához ki kell építenie egy tanúsítványt (a három digitális típus egyike), amely megfelel a következő feltételeknek:
A tanúsítványnak a helyi számítógép tanúsítványtárolójában vagy a SQL Server szolgáltatásfiók tanúsítványtárolójában kell lennie. A helyi számítógép tanúsítványtárolójának használatával elkerülheti a tanúsítványok újrakonfigurálását az SQL Server indítási fiók módosításakor.
A SQL Server szolgáltatásfióknak rendelkeznie kell a TLS-tanúsítvány eléréséhez szükséges engedéllyel. További információ: Az SQL Server-hez való csatlakozások titkosítása tanúsítvány importálásával.
Az aktuális rendszeridőnek az Érvényes tulajdonság értéke után kell lennie a tanúsítvány Érvényes tulajdonságának értéke előtt. További információ: Lejárt tanúsítványok.
Megjegyzés:
A tanúsítványnak kiszolgálóhitelesítésre kell készülnie. Ehhez a tanúsítvány Bővített kulcshasználat tulajdonságának meg kell adnia a kiszolgálói hitelesítést (1.3.6.1.5.5.7.3.1).
A tanúsítványt a
KeySpecAT_KEYEXCHANGElehetőséggel kell létrehozni. Ehhez egy olyan tanúsítványra van szükség, amely egy örökölt titkosítási társzolgáltatót használ a titkos kulcs tárolásához. A tanúsítvány kulcshasználati tulajdonsága (KEY_USAGE) általában tartalmazza a kulcsok titkosítását (CERT_KEY_ENCIPHERMENT_KEY_USAGE) és a digitális aláírást (CERT_DIGITAL_SIGNATURE_KEY_USAGE).A Subject Alternatív név tartalmaznia kell az összes nevet, amelyet az ügyfelek használhatnak egy SQL Server-példányhoz való csatlakozáshoz.
Az ügyfélnek képesnek kell lennie a kiszolgáló által használt tanúsítvány tulajdonjogának ellenőrzésére. Ha az ügyfél rendelkezik a kiszolgálótanúsítványt aláíró hitelesítésszolgáltató nyilvános kulcsú tanúsítványával, nincs szükség további konfigurációra. A Microsoft Windows számos hitelesítésszolgáltató nyilvános kulcsú tanúsítványait tartalmazza. Ha a kiszolgálótanúsítványt olyan nyilvános vagy privát hitelesítésszolgáltató írta alá, amelyhez az ügyfél nem rendelkezik nyilvános kulcsú tanúsítványsal, telepítenie kell annak a hitelesítésszolgáltatónak a nyilvánoskulcs-tanúsítványát, amely aláírta a kiszolgálótanúsítványt minden olyan ügyfélen, amely csatlakozni fog SQL Server.
Fontos
SQL Server nem indul el, ha egy tanúsítvány létezik a számítógéptárolóban, de csak a fenti listában szereplő követelményeknek felel meg, és ha manuálisan van konfigurálva SQL Server Configuration Manager vagy beállításjegyzék-bejegyzések általi használatra. Válasszon egy másik tanúsítványt, amely megfelel az összes követelménynek, vagy távolítsa el a tanúsítványt az SQL Server általi használatból, amíg nem áll rendelkezésre egy olyan tanúsítvány, amely megfelel a követelményeknek, vagy használjon önállóan létrehozott tanúsítványt, ahogyan az a SQL Server önaláírt tanúsítványok részben szerepel.
Always On rendelkezésre állási csoport
Ha a SQL Server-példány egy Always On rendelkezésre állási csoport része, a tanúsítvány létrehozásához az alábbi módszerek egyikét használhatja:
1. módszer: Használjon egy tanúsítványt a rendelkezésre állási csoport összes replikáján. Az általános név önkényes, így bármilyen helyőrző érték lehet. A rendelkezésre állási csoport összes SQL Server replikájának a gazdaneveit és teljes tartományneveit, valamint a rendelkezésre állási csoport figyelőinek neveit bele kell foglalni a tanúsítvány Subject Alternative Name-jébe. Ha az eredeti tanúsítvány létrehozása után további replikákat ad hozzá a rendelkezésre állási csoporthoz, a tanúsítványt újra kell létrehozni az összes replika nevével, és újra kell importálni az egyes replikákba. A tanúsítványt a rendelkezésre állási csoport replikájához vagy a rendelkezésre állási csoport figyelőjéhez csatlakozó összes ügyfél tanúsítványtárolójába is importálni kell, kivéve, ha a tanúsítványt nyilvános vagy hivatalos hitelesítésszolgáltató (CA) írta alá. Ha nem tartalmazza a rendelkezésre állási csoport replikáit és figyelőneveit a tanúsítványban, akkor a rendelkezésre állási csoporthoz való csatlakozáskor a Subject Alternative Name egyik értékét vagy a tanúsítvány elérési útját kell megadnia a
ServerCertificatekapcsolat karakterlánc értékei között. Az ajánlott módszer a nevek megadása a tanúsítványban.Az alábbiakban egy példa látható azokra a tulajdonságokra, amelyek egy megfelelően konfigurált tanúsítványt határoznak meg egy rendelkezésre állási csoporthoz, amelynek két kiszolgálója van,
test1.<your company>.coméstest2.<your company>.com, valamint egy figyelője,aglistener.<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 = test22. módszer: A rendelkezésre állási csoport minden replikájához használjon külön tanúsítványt. A replikák hozzáadása egy rendelkezésre állási csoporthoz a tanúsítvány létrehozása után egyszerűbb, ha külön tanúsítványokat használ, mivel csak az új replikához kell létrehoznia egy tanúsítványt, ahelyett, hogy az összes meglévő replikán módosítaná az összes tanúsítványt. Az általános név önkényes, így bármilyen helyőrző érték lehet. A megfelelő SQL Server példány gazdagépnevének és teljes tartománynevének, valamint a rendelkezésre állási csoport figyelőnevének szerepelnie kell az egyes replikák tanúsítványában a Subject Alternative Name mezőben. Importálja az egyes tanúsítványokat a saját replikájába, és hacsak a tanúsítványt nem egy nyilvános vagy hivatalos hitelesítésszolgáltató (CA) írja alá, importáljaaz összes tanúsítványt a replikákhoz csatlakozó összes ügyfélen vagy a rendelkezésre állási csoport figyelőjén található összes tanúsítványtárolóba.
Az alábbiakban példákat láthat azokra a tulajdonságokra, amelyek a megfelelően konfigurált tanúsítványokat határozzák meg egy olyan rendelkezésre állási csoporthoz, amely tartalmaz két példányt, név szerint
test1.<your company>.coméstest2.<your company>.com, valamint egyaglistener.<your company>.comnevű rendelkezésre állási csoport figyelőt:.Tanúsítvány az 1. teszten:
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= test1Tanúsítvány a 2. teszten:
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
Feladatátvevő fürtpéldány
Ha SQL Server failover fürtpéldányként van konfigurálva, telepítenie kell a kiszolgálótanúsítványt a virtuális kiszolgáló gazdagépnevével vagy teljes DNS-nevével (FQDN) a feladatátvevő fürt összes csomópontján. és a tanúsítványokat a feladatátvevő fürt összes csomópontján telepíteni kell. Ha például egy két csomópontos fürtje van, amelyben a csomópontokat test1.<your company>.com és test2.<your company>.com néven nevezte el, és van egy virtsql nevű virtuális kiszolgálója, akkor mindkét csomópontra telepítenie kell egy virtsql.<your company>.com tanúsítványt.
Importálja a tanúsítványt a feladatátvevő fürtbe az SQL Server Database Engine konfigurálása a kapcsolatok titkosításához dokumentáció szerint.
Az alábbi példa a feladatátvevő fürtpéldányhoz helyesen konfigurált tanúsítványt meghatározó tulajdonságokra mutat be:
CN = virtsql.<your company>.com
DNS Name = virtsql.<your company>.com
DNS Name = virtsql
További információ az SQL-fürtökről: Feladatátvételi fürtszolgáltatás telepítése előtt.
Ellenőrizze, hogy egy tanúsítvány megfelel-e a követelményeknek
A SQL Server 2019-es (15.x) és újabb verzióiban SQL Server Configuration Manager automatikusan ellenőrzi az összes tanúsítványkövetelményt magában a konfigurációs fázisban. Ha a tanúsítvány konfigurálása után SQL Server sikeresen elindul, az jó jel arra, hogy SQL Server használhatja ezt a tanúsítványt. Egyes ügyfélalkalmazások azonban továbbra is más követelményekkel rendelkeznek a titkosításhoz használható tanúsítványokra vonatkozóan, és a használt alkalmazástól függően különböző hibákat tapasztalhat. Ebben a forgatókönyvben az ügyfélalkalmazás támogatási dokumentációját kell ellenőriznie a témával kapcsolatos további információkért.
A KeySpec és a kulcs használatának ellenőrzése
A KeySpec követelmény (AT_KEYEXCHANGE) a tanúsítványkonfigurációs hibák gyakori oka. Az alábbi módszerekkel ellenőrizheti, hogy a tanúsítvány megfelel-e ennek a követelménynek.
A certutil használata
Futtassa a certutil-t a -v opcióval, hogy megjelenítse a részletes tanúsítványtulajdonságokat, beleértve a következőket: KeySpecKey Usage
certutil -v -store My "<certificate_thumbprint>"
A kimenetben keresse meg a következő értékeket:
KeySpec = 1 -- AT_KEYEXCHANGE
Key Usage = Key Encipherment, Digital Signature (a0)
Enhanced Key Usage:
Server Authentication (1.3.6.1.5.5.7.3.1)
Ha KeySpec = 2 (AT_SIGNATURE), a tanúsítvány nem használható SQL Server titkosításhoz.
Használja a PowerShellt
Futtassa a következő PowerShell-parancsokat a tanúsítványok helyi számítógéptárolóban való ellenőrzéséhez KeySpec :
Get-ChildItem Cert:\LocalMachine\My | ForEach-Object {
$cert = $_
$key = $cert.PrivateKey
[PSCustomObject]@{
Subject = $cert.Subject
Thumbprint = $cert.Thumbprint
KeySpec = if ($key) { $key.CspKeyContainerInfo.KeyNumber } else { 'No private key' }
NotAfter = $cert.NotAfter
}
} | Format-Table -AutoSize
Ellenőrizze, hogy a KeySpec megjeleníti-e a Exchange elemet (AT_KEYEXCHANGE megfelelően). Ha megjelenik Signature, kérjen egy új tanúsítványt a megfelelő KeySpec beállítással.
Tanúsítvány létrehozása az AD CS használatával
Ha a szervezet Active Directory tanúsítványszolgáltatást (AD CS) használ belső hitelesítésszolgáltatóként, hozzon létre egy tanúsítványt, amely megfelel SQL Server követelményeknek az alábbi lépések végrehajtásával:
- Nyissa meg a Tanúsítványok MMC beépülő modult a helyi számítógéphez (
certlm.msc). - Bontsa ki a Személyes elemet, kattintson a jobb gombbal a Tanúsítványok elemre, és válassza a Minden feladat>új tanúsítvány kérése lehetőséget.
- Válassza a Active Directory regisztrációs szabályzat és a Next lehetőséget.
- Válasszon egy olyan tanúsítványsablont, amely támogatja a kiszolgálói hitelesítést. A kiszolgálóhitelesítéshez konfigurált webkiszolgáló vagy egyéni sablon általában megfelel a követelményeknek. Ellenőrizze a hitelesítésszolgáltató rendszergazdájával, hogy a sablon egy régi titkosítási szolgáltatót (CSP- t) használ-e, nem pedig kulcstároló-szolgáltatót
KeySpec = AT_KEYEXCHANGE(KSP). - A Tanúsítvány tulajdonságai lapon:
- Állítsa a Common Name (CN) értékét a SQL Server-példány állomásnevére vagy teljes tartománynevére.
- A Tulajdonos alternatív neve lapon adja hozzá a DNS-bejegyzéseket az ügyfelek által a csatlakozáshoz használt összes állomásnévhez (állomásnév, teljes tartománynév és aliasok).
- Végezze el a regisztrációs varázslót, és ellenőrizze, hogy az új tanúsítványmegjelenik-e a > tanúsítványokban.
- A
KeySpecsegítségével ellenőrizze certutil vagy PowerShell használatával a KeySpec és a kulcshasználat ellenőrzése című szakaszban leírtak szerint.
Fontos
A kulcstároló-szolgáltatóval (KSP) létrehozott tanúsítványok, például a Microsoft szoftverkulcstár-szolgáltató által létrehozottak, KeySpec = 0 nem kompatibilisek az SQL Serverrel. Ha tanúsítványsablont hoz létre az AD CS-ben, válasszon ki egy régi CSP-t, például a Microsoft RSA SChannel titkosítási szolgáltatót , hogy biztosan biztosítsa KeySpec = AT_KEYEXCHANGE.
Az alábbi módszerek egyikével ellenőrizheti a tanúsítvány érvényességét a SQL Server való használathoz:
sqlcheck eszköz:
sqlcheckegy parancssori eszköz, amely megvizsgálja a számítógép és a szolgáltatásfiók aktuális beállításait, és szöveges jelentést készít a konzolablakba, amely hasznos a különböző csatlakozási hibák elhárításához. A kimenet a következő információkkal rendelkezik a tanúsítványokról: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.További információ az eszköz képességeiről és a letöltési utasításokról: Üdvözli a CSS_SQL_Networking_Tools wiki.
certutil tool:
certutil.exeegy parancssori program, amely a Tanúsítványszolgáltatások részeként van telepítve. A tanúsítványok memóriaképe kiírásához és megjelenítéséhez a certutil.exe használható. A-vbeállítással részletes információkat kaphat. További információ: certutil.Tanúsítványok beépülő modul: A Tanúsítványok beépülő modullal további információkat is megtekinthet a számítógép különböző tanúsítványtárolóiban található tanúsítványokról. Ez az eszköz azonban nem jelenít meg
KeySpecinformációkat. A tanúsítványok MMC beépülő modullal való megtekintésével kapcsolatos további információkért lásd: Tanúsítványok megtekintése az MMC beépülő modullal.
Másik névvel rendelkező tanúsítvány importálása a gazdagépnévre
Jelenleg csak akkor importálhat tanúsítványt a SQL Server Configuration Manager használatával, ha a tanúsítvány tulajdonosának neve megegyezik a számítógép állomásnevével.
Ha másik tulajdonosnévvel rendelkező tanúsítványt szeretne használni, kövesse az alábbi lépéseket:
Importálja a tanúsítványt a helyi számítógép tanúsítványtárolójába a Tanúsítványok beépülő modul használatával.
Az SQL Server Configuration Managerben bontsa ki a SQL Server Hálózati konfiguráció, kattintson a jobb gombbal az SQL Server példányára, majd a Tulajdonságok kiválasztásával nyissa meg a Protocols for <instance_name> Properties párbeszédpanelt.
A Tanúsítvány lapon válassza ki a tanúsítványtárolóba importált tanúsítványt a Tanúsítvány legördülő listából:
Ha egy másik nevű tanúsítványt importál a gazdagépnévhez, a következő hibaüzenet jelenik meg:
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
Lejárt tanúsítványok
SQL Server csak a tanúsítványok érvényességét ellenőrzi a konfiguráció időpontjában. Nem használhatja például az SQL Server Configuration Managert a SQL Server 2019 (15.x) és újabb verzióiban lejárt tanúsítvány kiépítéséhez. SQL Server továbbra is problémamentesen fut, ha a tanúsítvány a telepítés után lejár. Egyes ügyfélalkalmazások, például Power BI minden kapcsolaton ellenőrzik a tanúsítvány érvényességét, és hibát jeleznek, ha a SQL Server-példány lejárt tanúsítvány használatára van konfigurálva a titkosításhoz. Javasoljuk, hogy ne használjon lejárt tanúsítványt SQL Server titkosításhoz.
Következő lépés
- Konfigurálja a SQL Server Database Engine a kapcsolatok titkosításához egy tanúsítvány importálásával.