Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ovladač Microsoft JDBC pro SQL Server nebo klient musí ověřit, že server je správný server a jeho certifikát vydává certifikační autorita, které klient důvěřuje. Chcete-li ověřit certifikát serveru, musí být materiál důvěryhodnosti zadán v době připojení. Vystavitel certifikátu serveru musí být také certifikační autoritou, které klient důvěřuje.
Tento článek nejprve popisuje, jak poskytnout důvěryhodný materiál v klientském počítači. Potom popisuje, jak importovat certifikát serveru do úložiště důvěryhodnosti klientského počítače, když je instance certifikátu TLS (Transport Layer Security) sql Serveru vystavená privátní certifikační autoritou.
Další informace o ověřování certifikátu serveru najdete v části Ověřování certifikátu TLS serveru v tématu Principy podpory šifrování.
Konfigurace úložiště důvěryhodnosti klienta
Ověření certifikátu serveru vyžaduje v době připojení důvěryhodný obsah, a to buď explicitně pomocí vlastností připojení trustStore a trustStorePassword, nebo implicitně použitím výchozího úložiště důvěryhodnosti JVM (Java Virtual Machine). Další informace o nastavení vlastností trustStore a trustStorePassword v připojovacím řetězci naleznete v tématu Připojení pomocí šifrování.
Pokud je vlastnost trustStore nezadaná nebo nastavená na hodnotu null, ovladač Microsoft JDBC pro SQL Server bude spoléhat na základního zprostředkovatele zabezpečení JVM, rozšíření Java Secure Socket Extension (SunJSSE). Zprostředkovatel SunJSSE poskytuje výchozí TrustManager, který slouží k ověření certifikátů X.509 vrácených SQL Serverem proti důvěryhodným materiálům poskytnutým v úložišti důvěryhodných certifikátů.
TrustManager se pokusí najít výchozí trustStore v následujícím pořadí hledání:
- Pokud je definována systémová vlastnost javax.net.ssl.trustStore, správce TrustManager se pokusí najít výchozí soubor trustStore pomocí názvu souboru určeného danou systémovou vlastností.
- Pokud nebyla zadaná systémová vlastnost javax.net.ssl.trustStore a soubor java-home<>/lib/security/jssecacerts existuje, použije se tento soubor.
- Pokud soubor java-home<>/lib/security/cacerts existuje, použije se tento soubor.
Další informace naleznete v dokumentaci k rozhraní SUNX509 TrustManager na webu Sun Microsystems.
Prostředí Java Runtime umožňuje nastavit vlastnosti systému trustStore a trustStorePassword následujícím způsobem:
java -Djavax.net.ssl.trustStore=C:\MyCertificates\storeName
java -Djavax.net.ssl.trustStorePassword=storePassword
V takovém případě bude tato nastavení používat každá aplikace spuštěná v tomto prostředí JVM jako výchozí. Pokud chcete přepsat výchozí nastavení v aplikaci, měli byste nastavit vlastnosti připojení trustStore a trustStorePassword buď v připojovacím řetězci, nebo v příslušné metodě setter třídy SQLServerDataSource.
Můžete také nakonfigurovat a spravovat výchozí soubory úložiště důvěryhodnosti, jako je java-home<>/lib/security/jssecacerts a java-home<>/lib/security/cacerts. K tomu použijte nástroj JAVA keytool, který je nainstalován s prostředím JRE (Java Runtime Environment). Další informace o nástroji keytool naleznete v dokumentaci nástroje keytool na webu Oracle.
Import certifikátu serveru do úložiště důvěryhodných certifikátů
Během metody handshake protokolu TLS server odešle klientovi certifikát veřejného klíče. Vystavitel certifikátu veřejného klíče se označuje jako certifikační autorita (CA). Klient musí zajistit, aby certifikační autorita byla jednou z těch, kterým klient důvěřuje. Tohoto zajištění dosáhnete tím, že předem poznáte veřejný klíč důvěryhodných certifikačních autorit. JVM se obvykle dodává s předdefinovanou sadou důvěryhodných certifikačních autorit.
Pokud je instance certifikátu TLS SQL Serveru vystavená privátní certifikační autoritou, musíte certifikát certifikační autority přidat do seznamu důvěryhodných certifikátů v úložišti důvěryhodnosti klientského počítače.
K tomu použijte nástroj JAVA keytool, který je nainstalován s prostředím JRE (Java Runtime Environment). Následující příkazový řádek ukazuje, jak pomocí nástroje keytool importovat certifikát ze souboru:
keytool -import -v -trustcacerts -alias myServer -file caCert.cer -keystore truststore.ks
Příklad používá soubor s názvem "caCert.cer" jako soubor certifikátu. Tento soubor certifikátu musíte získat ze serveru. Následující postup vysvětluje, jak exportovat certifikát serveru do souboru:
- Vyberte Start a potom Spustit a zadejte MMC. (Zkratka MMC označuje konzolu Microsoft Management Console.)
- V konzole MMC otevřete certifikáty.
- Rozbalte položku Osobní a potom Certifikáty.
- Klikněte pravým tlačítkem myši na certifikát serveru a vyberte Všechny úkoly\Export.
- Výběrem možnosti Další přejdete přes úvodní dialogové okno Průvodce exportem certifikátu.
- Potvrďte, že
No, do not export the private keyje vybraná, a pak vyberte Další. - Nezapomeňte vybrat binární X.509 s kódováním DER (. CER) nebo X.509 s kódováním Base-64 (. CER) a pak vyberte Další.
- Zadejte název souboru exportu.
- Vyberte Další a pak vyberte Dokončit a exportujte certifikát.