Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server Linux rendszeren
A Linuxon futó SQL Server a Transport Layer Security (TLS) használatával titkosíthatja az ügyfélalkalmazás és az SQL Server egy példánya közötti hálózaton keresztül továbbított adatokat. Az SQL Server ugyanazokat a TLS-protokollokat támogatja Windows és Linux rendszeren is: 1.2, 1.1 és 1.0.
Jegyzet
Az SQL Server 2025-től kezdve (17.x):
- A TLS 1.3 alapértelmezés szerint engedélyezve van
- A SUSE Linux Enterprise Server (SLES) nem támogatott
A TLS konfigurálásához szükséges lépések az SQL Servert futtató operációs rendszerre vonatkoznak.
Tanúsítványokra vonatkozó követelmények
Győződjön meg arról, hogy a tanúsítványok megfelelnek az alábbi követelményeknek:
Az aktuális rendszeridőnek a tanúsítvány
Valid fromtulajdonsága és a tanúsítványValid totulajdonsága előtt kell lennie.A tanúsítványnak kiszolgálóhitelesítésre kell készülnie. A tanúsítvány
Enhanced Key Usagetulajdonságának meg kell adniaServer Authentication (1.3.6.1.5.5.7.3.1)-et ehhez.A tanúsítványt a
KeySpecAT_KEYEXCHANGElehetőségével kell létrehozni. A tanúsítvány kulcshasználati tulajdonsága (KEY_USAGE) általában a kulcsok titkosítását (CERT_KEY_ENCIPHERMENT_KEY_USAGE) is tartalmazza.A tanúsítvány
Subjecttulajdonságának azt kell jeleznie, hogy a közös név (CN) megegyezik a kiszolgálószámítógép hostnevével vagy a maradéktalanul kvalifikált tartománynevével (FQDN).Jegyzet
A wildcard tanúsítványok támogatottak.
Az OpenSSL-kódtárak konfigurálása használatra (nem kötelező)
A /opt/mssql/lib/ könyvtárban olyan szimbolikus hivatkozásokat hozhat létre, amelyek hivatkoznak arra, hogy mely libcrypto.so és libssl.so kódtárakat kell használni a titkosításhoz. Ez akkor hasznos, ha arra szeretné kényszeríteni az SQL Servert, hogy a rendszer által alapértelmezetttől eltérő OpenSSL-verziót használjon. Ha ezek a szimbolikus hivatkozások nem találhatók, az SQL Server betölti az alapértelmezett konfigurált OpenSSL-kódtárakat a rendszeren.
Ezeket a szimbolikus hivatkozásokat el kell nevezni libcrypto.so és libssl.so, és a /opt/mssql/lib/ könyvtárba kell helyezni.
Jegyzet
"Példaként arra, hogyan lehet Let's Encrypt alkalmazásával tanúsítványt generálni, tekintse meg a blogbejegyzést: 'Az adatok erejének feloldása az Azure-ban Linuxos Azure virtuális gépeken futó SQL Serverrel és Azure AI kereséssel' (,)."
Áttekintés
A TLS az ügyfélalkalmazás és az SQL Server közötti kapcsolatok titkosítására szolgál. Ha megfelelően van konfigurálva, a TLS biztosítja az adatvédelem és az adatintegritás védelmét az ügyfél és a kiszolgáló közötti kommunikációhoz. A TLS-kapcsolatokat kezdeményezheti a kliens vagy a szerver.
Az alábbi szakasz az ügyfél által kezdeményezett titkosítás beállítását ismerteti.
Tanúsítvány létrehozása
/CN-nak egyeznie kell az SQL Server-gazdagép teljes-körű tartománynevével.
Vigyázat
Ez a példa egy önaláírt tanúsítványt használ. Az önaláírt tanúsítványokat nem szabad éles forgatókönyvekhez használni. Ca-tanúsítványokat kell használnia.
Győződjön meg arról, hogy a tanúsítványok és a titkos kulcsok mentésére szolgáló mappák elérhetők a mssql felhasználó/csoport számára, és hogy az engedélyek 700 (drwx-----) értékre vannak állítva. Manuálisan is létrehozhat mappákat a 700 (drwx------) és a mssql felhasználó/csoport tulajdonában lévő engedélyekkel, vagy beállíthatja, hogy 755 (drwxr-xr-x), amely más felhasználó tulajdonában van, de továbbra is elérhető a mssql felhasználói csoport számára. Létrehozhat például egy sslcert nevű mappát a /var/opt/mssql/elérési út alatt, és mentheti a tanúsítványt és a titkos kulcsot a 600beállítású fájlok engedélyeivel, ahogyan az az alábbi példában látható.
openssl req -x509 -nodes -newkey rsa:2048 -subj '/CN=mssql.contoso.com' -keyout mssql.key -out mssql.pem -days 365
sudo chown mssql:mssql mssql.pem mssql.key
sudo chmod 600 mssql.pem mssql.key
#Saving the certificate to the certs folder under /etc/ssl/ which has the following permission 755(drwxr-xr-x)
sudo mv mssql.pem /etc/ssl/certs/ drwxr-xr-x
#Saving the private key to the private folder under /etc/ssl/ with permissions set to 755(drwxr-xr-x)
sudo mv mssql.key /etc/ssl/private/
AZ SQL Server konfigurálása
SQL Server 2022 (16.x) és korábbi verziók esetén:
systemctl stop mssql-server
sudo cat /var/opt/mssql/mssql.conf
sudo /opt/mssql/bin/mssql-conf set network.tlscert /etc/ssl/certs/mssql.pem
sudo /opt/mssql/bin/mssql-conf set network.tlskey /etc/ssl/private/mssql.key
sudo /opt/mssql/bin/mssql-conf set network.tlsprotocols 1.2
sudo /opt/mssql/bin/mssql-conf set network.forceencryption 0
systemctl restart mssql-server
SQL Server 2025 esetén (17.x):
systemctl stop mssql-server
sudo cat /var/opt/mssql/mssql.conf
sudo /opt/mssql/bin/mssql-conf set network.tlscert /etc/ssl/certs/mssql.pem
sudo /opt/mssql/bin/mssql-conf set network.tlskey /etc/ssl/private/mssql.key
sudo /opt/mssql/bin/mssql-conf set network.forceencryption 0
systemctl restart mssql-server
A tanúsítvány regisztrálása az ügyfélszámítógépen (Windows, Linux vagy macOS)
Ha hitelesítésszolgáltató által aláírt tanúsítványt használ, a felhasználói tanúsítvány helyett a hitelesítésszolgáltatói tanúsítványt kell átmásolnia az ügyfélszámítógépre.
Ha önaláírt tanúsítványt használ, másolja a
.pemfájlt a terjesztési mappába, és hajtsa végre a parancsokat az engedélyezéshez:Ubuntu: Másolja a tanúsítványt
/usr/share/ca-certificates/, nevezze át a bővítményét.crt-re, és adpkg-reconfigure ca-certificateshasználatával engedélyezze a rendszer hitelesítésszolgáltatói tanúsítványaként.RHEL: Másolja a tanúsítványt
/etc/pki/ca-trust/source/anchors/-be, és használja aupdate-ca-trust-at a rendszer CA tanúsítványként való engedélyezéséhez.SUSE: Másolja a tanúsítványt
/usr/share/pki/trust/anchors/-be, és használja aupdate-ca-certificates-at, hogy engedélyezze azt rendszer hitelesítésszolgáltatói tanúsítványként.Windows: Importálja a
.pemfájlt mint tanúsítványt a Jelenlegi felhasználó > Megbízható legfelső szintű hitelesítésszolgáltatók > tanúsítványainakalatt.macOS:
Másold a tanúsítványt a
/usr/local/etc/openssl/certs-raFuttassa a következő parancsot a kivonat értékének lekéréséhez:
/usr/local/Cellar/openssl/1.0.2l/openssl x509 -hash -in mssql.pem -nooutNevezze át a tanúsítványt a megadott értékre. Például:
mv mssql.pem dc2dd900.0. Győződjön meg arról, hogydc2dd900.0benne van/usr/local/etc/openssl/certs-ben.
Példa kapcsolati sztringekre
Vigyázat
A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.
SQL Server Management Studio
sqlcmd
sqlcmd -S <sqlhostname> -N -U sa -P '<password>'ADO.NET
"Encrypt=True; TrustServerCertificate=False;"ODBC-
"Encrypt=Yes; TrustServerCertificate=no;"JDBC
"encrypt=true; trustServerCertificate=false;"
Gyakori csatlakozási hibák
| Hibaüzenet | Javít |
|---|---|
The certificate chain was issued by an authority that is not trusted. |
Ez a hiba akkor fordul elő, ha az ügyfelek nem tudják ellenőrizni az SQL Server által a TLS-kézfogás során bemutatott tanúsítvány aláírását. Győződjön meg arról, hogy az ügyfél megbízik közvetlenül az SQL Server-tanúsítványban, vagy az SQL Server-tanúsítványt aláíró hitelesítésszolgáltatóban. |
The target principal name is incorrect. |
Győződjön meg arról, hogy az SQL Server tanúsítványának Common Name mezője megegyezik az ügyfél kapcsolati sztringjében megadott kiszolgálónévvel. |
An existing connection was forcibly closed by the remote host. |
Ez a hiba akkor fordulhat elő, ha az ügyfél nem támogatja az SQL Server által igényelt TLS protokollverziót. Ha például az SQL Server úgy van konfigurálva, hogy TLS 1.2-t igényeljen, győződjön meg arról, hogy az ügyfelek támogatják a TLS 1.2 protokollt is. |
Ubuntu 20.04 és egyéb linuxos disztribúciós kiadások
tüneti
Amikor egy Linux-példányon futó SQL Server betölt egy aláírási algoritmussal létrehozott tanúsítványt, amely kevesebb mint 112 bites biztonságot használ (például: MD5, SHA-1), a következő példához hasonlóan csatlakozási hiba figyelhető meg:
A kiszolgálóval sikeresen létrejött a kapcsolat, de a bejelentkezési folyamat során hiba történt. (szolgáltató: SSL-szolgáltató, hiba: 0 – A távoli gazdagép kényszerítetten bezárt egy meglévő kapcsolatot.) (Microsoft SQL Server, hiba: 10054)
A hiba oka, hogy az OpenSSL 2. biztonsági szintje alapértelmezés szerint engedélyezve van az Ubuntu 20.04-es és újabb verzióiban. A 2. biztonsági szint tiltja a 112 bitesnél kisebb biztonsági szintű TLS-kapcsolatok létrehozását.
megoldás
Legalább 112 bites biztonságú tanúsítvány telepítése aláírási algoritmussal. A követelménynek megfelelő aláírási algoritmusok közé tartozik az SHA-224, az SHA-256, az SHA-384 és az SHA-512.