Megosztás a következőn keresztül:


SQL Server-adatbázismotor konfigurálása a kapcsolatok titkosításához

A következőkre vonatkozik:SQL Server – csak Windows

Titkosíthatja az SQL Serverhez érkező összes bejövő kapcsolatot, vagy engedélyezheti a titkosítást csak egy adott ügyfélcsoport esetében. Ezen forgatókönyvek bármelyike esetén először úgy kell konfigurálnia az SQL Servert, hogy olyan tanúsítványt használjon, amely megfelel SQL Server- tanúsítványkövetelményeinek, mielőtt további lépéseket tesz a kiszolgálószámítógépen vagy az ügyfélszámítógépeken az adatok titkosításához.

Jegyzet

Ez a cikk windowsos SQL Serverre vonatkozik. Ha linuxos SQL Servert szeretne konfigurálni a kapcsolatok titkosításához, olvassa el TLS-beállítások megadásacímű témakört.

Ez a cikk bemutatja, hogyan konfigurálhatja az SQL Servert tanúsítványokhoz (1. lépés) és hogyan módosíthatja az SQL Server-példány titkosítási beállításait (2. lépés). Mindkét lépés szükséges az SQL Serverhez érkező összes bejövő kapcsolat titkosításához egy nyilvános kereskedelmi szolgáltató tanúsítványának használatakor. További forgatókönyvek: Az SQL Serverkapcsolatainak titkosítására vonatkozó speciális esetek.

1. lépés: Az SQL Server konfigurálása tanúsítványok használatára

Ha az SQL Servert úgy szeretné konfigurálni, hogy az SQL Servertanúsítványkövetelményeiben leírt tanúsítványokat használja, kövesse az alábbi lépéseket:

  1. Telepítse a tanúsítványt az SQL Servert futtató számítógépre.
  2. Konfigurálja az SQL Servert a telepített tanúsítvány használatára.

Az SQL Server Configuration Manager verziójától függően az SQL Server-számítógépen az alábbi eljárások egyikével telepítheti és konfigurálhatja az SQL Server-példányt.

Az SQL Server Configuration Managerrel rendelkező számítógépek az SQL Server 2019-hez és újabb verziókhoz

Az SQL Server 2019 (15.x) és újabb verzióiban a tanúsítványkezelés integrálva van az SQL Server Configuration Managerbe, és az SQL Server korábbi verzióival is használható. Ha tanúsítványt szeretne hozzáadni egyetlen SQL Server-példányhoz, feladatátvevő fürtkonfigurációban vagy rendelkezésre állási csoport konfigurációjában, tekintse meg tanúsítványkezelés (SQL Server Configuration Manager). A Configuration Manager jelentősen leegyszerűsíti a tanúsítványkezelést azáltal, hogy néhány lépéssel gondoskodik a tanúsítvány telepítéséről és az SQL Server konfigurálásáról a telepített tanúsítvány használatára.

A tanúsítványok helyileg vannak tárolva a számítógépen lévő felhasználók számára. Az SQL Serverhez használható tanúsítvány telepítéséhez az SQL Server Configuration Managert egy helyi rendszergazdai jogosultságokkal rendelkező fiókkal kell futtatnia.

Ideiglenesen telepítheti az SQL Server 2019 Express kiadását (15.x) vagy egy újabb verziót az SQL Server Configuration Manager használatához, amely támogatja az integrált tanúsítványkezelést.

Az SQL Server Configuration Managerrel rendelkező számítógépek az SQL Server 2017-hez és korábbi verziókhoz

Ha az SQL Server 2017 (14.x) vagy egy korábbi verziót használja, és az SQL Server 2019-hez készült SQL Server Configuration Manager (15.x) nem érhető el, az alábbi lépésekkel telepítheti és konfigurálhatja a tanúsítványt az SQL Server-számítógépen:

  1. A Start menüben válassza a Futtatáslehetőséget, majd a megnyitása mezőbe írja be MMC, majd válassza OKlehetőséget.
  2. A MMC konzol Fájl menüjében válassza Beépülő modul hozzáadása/eltávolítása...lehetőséget.
  3. A Beépülő modulok hozzáadása vagy eltávolítása párbeszédpanelen válassza a Tanúsítványoklehetőséget, majd válassza a Hozzáadáslehetőséget.
  4. A Tanúsítványok beépülő modul párbeszédpanelen válassza Számítógépfióklehetőséget, majd válassza a Tovább>Befejezéslehetőséget.
  5. A Beépülő modulok hozzáadása vagy eltávolítása párbeszédpanelen válassza OKlehetőséget.
  6. A MMC konzolon bontsa ki Tanúsítványok (helyi számítógép)>Személyeselemet, kattintson a jobb gombbal a Tanúsítványokelemre, mutasson Minden feladatelemre, és válassza a Importáláslehetőséget.
  7. Töltse ki a tanúsítványimportálási varázslót a tanúsítvány számítógéphez való hozzáadásához.
  8. A MMC konzolon kattintson a jobb gombbal az importált tanúsítványra, mutasson a Minden feladatelemre, és válassza a Privát kulcsok kezeléselehetőséget. A Biztonsági párbeszédpanelen adjon hozzá olvasási engedélyt az SQL Server szolgáltatásfiókja által használt felhasználói fiókhoz.
  9. A SQL Server Configuration Managerprogramban bontsa ki az SQL Server hálózati konfigurációt, kattintson a jobb gombbal a protokollokra a <kiszolgálópéldány>esetén, és válassza a Tulajdonságoklehetőséget.
  10. A protokollok <példánynevek> tulajdonságai párbeszédpanel Tanúsítvány fülén válassza ki a kívánt tanúsítványt a Tanúsítvány mező legördülő listájából, majd válassza az OKlehetőséget.
  11. Ha az SQL Serverhez való összes kapcsolatot titkosítani kell, olvassa el 2. lépés: Titkosítási beállítások konfigurálása az SQL Server. Ha csak bizonyos ügyfelek titkosítását szeretné engedélyezni, indítsa újra az SQL Server szolgáltatást, és tekintse meg Az SQL Server-kapcsolatok titkosításának speciális eseteit.

Jegyzet

Ha tanúsítványokat szeretne telepíteni a rendelkezésre állási csoport konfigurációjában, ismételje meg az előző eljárást a rendelkezésre állási csoport minden csomópontján, kezdve az elsődleges csomóponttal.

Fontos

Az SQL Server szolgáltatásfiókjának olvasási engedélyekkel kell rendelkeznie az SQL Server-példány titkosításának kényszerítéséhez használt tanúsítványhoz. Nem emelt jogosultságú szolgáltatásfiók esetén olvasási engedélyeket kell hozzáadni a tanúsítványhoz. Ennek elmulasztása az SQL Server szolgáltatás újraindításának meghiúsulását okozhatja.

További eljárás a feladatátvevő fürtpéldányok esetében

Az SQL Server által a kapcsolatok titkosításához használt tanúsítvány a következő beállításkulcsban van megadva:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Certificate

Ez a kulcs a tanúsítvány ujjlenyomatként ismert tulajdonságát tartalmazza, amely azonosítja a kiszolgálón található összes tanúsítványt. Fürtözött környezetben a kulcs Null-re van beállítva, annak ellenére, hogy a megfelelő tanúsítvány létezik a tárolóban. A probléma megoldásához minden fürtcsomóponton meg kell tennie ezeket a további lépéseket, miután telepítette a tanúsítványt az egyes csomópontokra:

  1. Keresse meg azt a tanúsítványtárolót, ahol a teljes tartománynév (FQDN) tanúsítványt tárolják. A tanúsítvány tulajdonságok lapján lépjen a Részletek lapra, és másolja a tanúsítvány ujjlenyomat-értékét egy Jegyzettömb ablakba.

  2. Távolítsa el Jegyzettömbujjlenyomat-értékének hexa karakterei közötti szóközöket.

  3. Indítsa el Beállításszerkesztő, lépjen a következő beállításkulcsra, és illessze be az értéket a 2. lépésből:

    HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\<instance>\MSSQLServer\SuperSocketNetLib\Certificate

  4. Ha az SQL virtuális kiszolgáló jelenleg ezen a csomóponton található, hajtson végre feladatátvételt a fürt egy másik csomópontjára, és indítsa újra azt a csomópontot, ahol a beállításjegyzék-módosítás történt.

  5. Ismételje meg ezt az eljárást az összes csomóponton.

Figyelmeztetés

A beállításjegyzék helytelen szerkesztése súlyosan károsíthatja a rendszert. A beállításjegyzék módosítása előtt javasoljuk, hogy készítsen biztonsági másolatot a számítógépen lévő értékes adatokról.

Jegyzet

Az SQL Server 2008 R2 (10.50.x) és az SQL Server 2008 R2 (10.50.x) natív ügyfél (SNAC) támogatja a helyettesítő tanúsítványokat. Az SNAC azóta elavult, és az SQL Server Microsoft OLE DB-illesztőjével és az SQL Server Microsoft ODBC-illesztőjével váltotta fel. Előfordulhat, hogy más ügyfelek nem támogatják a helyettesítő tanúsítványokat.

A helyettesítő tanúsítvány nem választható ki az SQL Server Configuration Managerrel. Helyettesítő tanúsítvány használatához szerkesztenie kell a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer\SuperSocketNetLib beállításkulcsot, és szóközök nélkül be kell írnia a tanúsítvány ujjlenyomatát a tanúsítvány értékére.

Jegyzet

A feladatátvevő fürt titkosításának használatához telepítenie kell a kiszolgálótanúsítványt a virtuális kiszolgáló teljes DNS-nevével a feladatátvevő fürt összes csomópontján. Beállíthatja a ForceEncryption értékét a SQL Server hálózati konfigurációja keretében a Virtsql-protokollok tulajdonságmezőben Igenértékre.

Ha titkosított kapcsolatokat hoz létre egy Azure Search-indexelőhöz az SQL Serverhez egy Azure-beli virtuális gépen, tekintse meg Indexelő-kapcsolatokat egy Azure-beli virtuális gépen található SQL Server-példányhoz.

2. lépés: Titkosítási beállítások konfigurálása az SQL Serveren

A következő lépésekre csak akkor van szükség, ha az összes ügyfél titkosított kommunikációjának kényszerítésére van szükség:

  1. Az SQL Server Configuration Managerben bontsa ki SQL Server hálózati konfigurációs, kattintson a jobb gombbal <kiszolgálópéldány>protokolljaira, majd válassza Tulajdonságoklehetőséget.
  2. A Jelzők lap ForceEncryption mezőjében válassza az Igenlehetőséget, majd a párbeszédpanel bezárásához válassza az OK lehetőséget.
  3. Indítsa újra az SQL Server szolgáltatást.

Jegyzet

Egyes tanúsítványforgatókönyvek esetében további lépéseket kell végrehajtania az ügyfélszámítógépen és az ügyfélalkalmazásban az ügyfél és a kiszolgáló közötti titkosított kapcsolatok biztosítása érdekében. További információ: Az SQL Serverkapcsolatainak titkosítására szolgáló speciális esetek.

További információ

Bejelentkezési csomagtitkosítás és adatcsomag-titkosítás

Magas szinten két csomagtípus létezik az SQL Server-ügyfélalkalmazás és az SQL Server közötti hálózati forgalomban: hitelesítő csomagok (bejelentkezési csomagok) és adatcsomagok. A titkosítás (kiszolgálóoldali vagy ügyféloldali) konfigurálásakor mindkét csomagtípus mindig titkosítva lesz. De még akkor is, ha nem konfigurálja a titkosítást, a rendszer mindig titkosítja azokat a hitelesítő adatokat (a bejelentkezési csomagban), amelyeket az ügyfélalkalmazás az SQL Serverhez való csatlakozáskor továbbít. Az SQL Server olyan tanúsítványt használ, amely megfelel egy megbízható hitelesítésszolgáltató tanúsítványkövetelményeinek, ha elérhető. Ezt a tanúsítványt a rendszergazda manuálisan konfigurálja a cikkben korábban ismertetett eljárások egyikével, vagy az SQL Server-számítógépen található tanúsítványtárolóban.

SQL Server által létrehozott önaláírt tanúsítványok

Az SQL Server megbízható hitelesítésszolgáltatótól származó tanúsítványt használ, ha elérhető a bejelentkezési csomagok titkosításához. Ha nincs telepítve megbízható tanúsítvány, az SQL Server az indítás során létrehoz egy önaláírt tanúsítványt (tartalék tanúsítványt), és az önaláírt tanúsítvány használatával titkosítja a hitelesítő adatokat. Ez az önaláírt tanúsítvány növeli a biztonságot, de nem véd a kiszolgáló identitáshamisítása ellen. Ha az önaláírt tanúsítványt használja, és a ForceEncryption beállítás értéke Igenértékre van állítva, az SQL Server és az ügyfélalkalmazás közötti hálózaton keresztül továbbított összes adat titkosítva lesz az önaláírt tanúsítvány használatával.

Ha önaláírt tanúsítványt használ, az SQL Server a következő üzenetet naplózza a hibanaplóba:

A titkosításhoz sikeresen be lett töltve egy ön által létrehozott tanúsítvány.

Az SQL Server 2016 (13.x) és korábbi verziói az SHA1 algoritmust használják. Az SHA1 algoritmus és számos régebbi algoritmus azonban elavult, kezdve az SQL Server 2016-tal (13.x). További információ az Elavult adatbázismotor-funkciók az SQL Server 2016 (13.x)részben található.

Ezekben a környezetekben, ha az SQL Server által automatikusan létrehozott önaláírt tanúsítványt használja, akár csak az előre beírt kézfogáshoz, akár az összes kiszolgáló-ügyfél kommunikáció titkosításához, a biztonsági rések észlelésére szolgáló szoftver vagy biztonsági szoftver vagy vállalati szabályzatok biztonsági problémaként jelölhetik meg ezt a használatot. Ezekhez a forgatókönyvekhez a következő lehetőségek állnak rendelkezésre:

  • Hozzon létre egy új önaláírt tanúsítványt vagy egy külső tanúsítványt, amely erősebb titkosítási algoritmusokat használ, és konfigurálja az SQL Servert az új tanúsítvány használatára.
  • Mivel most már tisztában van a jelző okával, figyelmen kívül hagyhatja az üzenetet (nem ajánlott).
  • Frissítsen az SQL Server 2017 -re (14.x) vagy egy újabb verzióra, amely erősebb kivonatoló algoritmust (SHA256) használ az önaláírt tanúsítványokhoz.

PowerShell-szkript önaláírt tanúsítvány létrehozásához az SQL Serverhez

Az alábbi kódrészlet használható önaláírt tanúsítvány létrehozásához egy SQL Servert futtató számítógépen. A tanúsítvány megfelel a különálló SQL Server-példány titkosítási követelményeinek, és a helyi számítógép tanúsítványtárolójában van mentve (a PowerShellt rendszergazdaként kell elindítani):

# Define parameters
$certificateParams = @{
    Type = "SSLServerAuthentication"
    Subject = "CN=$env:COMPUTERNAME"
    DnsName = @("$($env:COMPUTERNAME)", $([System.Net.Dns]::GetHostEntry('').HostName), 'localhost')
    KeyAlgorithm = "RSA"
    KeyLength = 2048
    HashAlgorithm = "SHA256"
    TextExtension = "2.5.29.37={text}1.3.6.1.5.5.7.3.1"
    NotAfter = (Get-Date).AddMonths(36)
    KeySpec = "KeyExchange"
    Provider = "Microsoft RSA SChannel Cryptographic Provider"
    CertStoreLocation = "cert:\LocalMachine\My"
}

# Call the cmdlet
New-SelfSignedCertificate @certificateParams

Hálózati titkosítás ellenőrzése

A hálózati titkosítás sikeres konfigurálásához és engedélyezéséhez futtassa a következő Transact-SQL lekérdezést:

USE [master];
GO

SELECT DISTINCT (encrypt_option)
FROM sys.dm_exec_connections
WHERE net_transport <> 'Shared memory';
GO

A encrypt_option oszlop logikai érték, amely jelzi, hogy engedélyezve van-e a titkosítás ehhez a kapcsolathoz. Ha az érték TRUE, a kapcsolat biztonságosan titkosítva lesz. Ha az érték FALSE, a kapcsolat nincs titkosítva.

SQL Server-tanúsítvány viselkedése engedélyekkel

Az SQL Server szolgáltatás automatikusan észleli és használja a tanúsítványt a titkosításhoz, ha az alábbi feltételek teljesülnek:

  • A tanúsítvány tárgya a gép teljes tartománynevét tartalmazza
  • A tanúsítvány telepítve van a helyi számítógép tanúsítványtárolójában
  • Az SQL Server szolgáltatásfiókja hozzáférést kap a tanúsítvány titkos kulcsához

Ez a használat akkor is előfordul, ha a tanúsítvány nincs kiválasztva az SQL Server Configuration Managerben.

Ennek a viselkedésnek a felülbírálásához az alábbiakat kell tenni:

  • Az SQL Server Configuration Managerben használandó másik tanúsítvány konfigurálása

    vagy

  • Az SQL Server szolgáltatásfiók engedélyeinek eltávolítása a nem kívánt tanúsítványhoz