Dela via


Konfigurera klienten för kryptering

Ladda ned JDBC-drivrutin

Microsoft JDBC-drivrutinen för SQL Server eller klienten måste verifiera att servern är rätt server och att dess certifikat utfärdas av en certifikatutfärdare som klienten litar på. För att verifiera servercertifikatet måste tillitmaterialet anges vid tidpunkten för anslutning. Utfärdaren av servercertifikatet måste också vara en certifikatutfärdare som klienten litar på.

Den här artikeln beskriver först hur du tillhandahåller förtroendematerialet på klientdatorn. Sedan beskrivs hur du importerar ett servercertifikat till klientdatorns förtroendearkiv när instansen av SQL Server:s TLS-certifikat (Transport Layer Security) utfärdas av en privat certifikatutfärdare.

Mer information om hur du verifierar servercertifikatet finns i avsnittet Validera TLS-certifikat för server i Förstå krypteringsstöd.

Konfigurera klientförtroendelagret

För att verifiera servercertifikatet krävs förtroendematerialet vid anslutningstiden, antingen genom att använda anslutningsegenskaperna trustStore och trustStorePassword explicit, eller genom att använda den underliggande Java Virtual Machine (JVM)-standardförtroendearkivet implicit. Mer information om hur du anger egenskaperna trustStore och trustStorePassword i en anslutningssträng finns i Ansluta med kryptering.

Om egenskapen trustStore är ospecificerad eller inställd på null förlitar sig Microsoft JDBC-drivrutinen för SQL Server på den underliggande JVM:s säkerhetsprovider, Java Secure Socket Extension (SunJSSE). SunJSSE-providern tillhandahåller en Standard TrustManager som används för att validera X.509-certifikat som returneras av SQL Server mot det förtroendematerial som tillhandahålls i ett förtroendearkiv.

TrustManager försöker hitta standard trustStore i följande sökordning:

  • Om systemegenskapen "javax.net.ssl.trustStore" har definierats försöker TrustManager hitta standardfilen trustStore med hjälp av det filnamn som anges av systemegenskapen.
  • Om systemegenskapen "javax.net.ssl.trustStore" inte angavs och filen "<java-home>/lib/security/jssecacerts" finns används filen.
  • Om filen "<java-home>/lib/security/cacerts" finns används den filen.

Mer information finns i dokumentationen om SUNX509 TrustManager-gränssnittet på Sun Microsystems webbplats.

Med Java Runtime-miljön kan du ange systemegenskaperna trustStore och trustStorePassword på följande sätt:

java -Djavax.net.ssl.trustStore=C:\MyCertificates\storeName
java -Djavax.net.ssl.trustStorePassword=storePassword

I det här fallet använder alla program som körs på denna JVM dessa inställningar som standard. Om du vill åsidosätta standardinställningarna i ditt program bör du ange anslutningsegenskaperna trustStore och trustStorePassword antingen i anslutningssträngen eller i lämplig setter-metod för KLASSEN SQLServerDataSource .

Du kan också konfigurera och hantera standardfilerna för förtroendelagring, till exempel "<java-home>/lib/security/jssecacerts" och "<java-home>/lib/security/cacerts". För att göra det använder du java-verktyget "keytool" som är installerat med JRE (Java Runtime Environment). Mer information om verktyget "keytool" finns i keytool-dokumentationen på Oracle-webbplatsen.

Importera servercertifikatet till betrodda lagring

Under TLS-handskakningen skickar servern sitt offentliga nyckelcertifikat till klienten. Utfärdaren av ett offentligt nyckelcertifikat kallas certifikatutfärdare (CA). Klienten måste se till att certifikatutfärdaren är en som klienten litar på. Den här försäkran uppnås genom att känna till den offentliga nyckeln för betrodda certifikatutfärdare i förväg. Normalt levereras JVM med en fördefinierad uppsättning betrodda certifikatutfärdare.

Om instansen av SQL Server:s TLS-certifikat utfärdas av en privat certifikatutfärdare måste du lägga till certifikatutfärdarcertifikatet i listan över betrodda certifikat i klientdatorns förtroendearkiv.

För att göra det använder du java-verktyget "keytool" som är installerat med JRE (Java Runtime Environment). Följande kommandotolk visar hur du använder verktyget "keytool" för att importera ett certifikat från en fil:

keytool -import -v -trustcacerts -alias myServer -file caCert.cer -keystore truststore.ks

I exemplet används en fil med namnet "caCert.cer" som en certifikatfil. Du måste hämta certifikatfilen från servern. Följande steg förklarar hur du exporterar servercertifikatet till en fil:

  1. Välj Start och sedan Kör och skriv MMC. (MMC är en förkortning av Microsoft Management Console.)
  2. Öppna certifikaten i MMC.
  3. Expandera menyn Personligt och sedan Certifikat.
  4. Högerklicka på servercertifikatet och välj sedan Alla uppgifter\Exportera.
  5. Välj Nästa för att gå förbi välkomstdialogrutan i guiden Exportera certifikat.
  6. Bekräfta att är No, do not export the private key markerat och välj sedan Nästa.
  7. Se till att välja antingen DER-kodad binär X.509 (. CER) eller Base-64-kodad X.509 (. CER) och välj sedan Nästa.
  8. Ange ett exportfilnamn.
  9. Välj Nästa och sedan Slutför för att exportera certifikatet.

Se även

Att använda kryptering
Skydda JDBC-drivrutinsprogram