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.
Příklady v tomto článku popisují, jak používat vlastnosti připojovacího řetězce, které aplikacím umožňují používat šifrování TLS (Transport Layer Security) v aplikaci v Javě. Další informace o těchto nových vlastnostech připojovacího řetězce, jako jsou encrypt, trustServerCertificate, trustStore, trustStorePassword a hostNameInCertificate, naleznete v tématu Nastavení vlastností připojení.
Konfigurace připojení
Pokud je vlastnost encrypt nastavena na hodnotu true a vlastnost trustServerCertificate je nastavena na hodnotu true, ovladač Microsoft JDBC pro SQL Server neověří certifikát TLS SQL Serveru. Toto nastavení je běžné pro povolení připojení v testovacích prostředích, například v případě, že instance SQL Serveru má pouze certifikát podepsaný svým držitelem.
Následující příklad kódu ukazuje, jak nastavit trustServerCertificate vlastnost v připojovacím řetězci:
String connectionUrl =
"jdbc:sqlserver://localhost:1433;" +
"databaseName=AdventureWorks;integratedSecurity=true;" +
"encrypt=true;trustServerCertificate=true";
Pokud je vlastnost encrypt nastavena na hodnotu true a vlastnost trustServerCertificate je nastavena na false, ovladač Microsoft JDBC pro SQL Server ověří certifikát TLS SQL Serveru. Ověření certifikátu serveru je součástí metody handshake protokolu TLS a zajišťuje, že server je správný server pro připojení. Pokud chcete ověřit certifikát serveru, musí být důvěryhodné materiály zadány při připojení buď pomocí parametrů připojení trustStore a trustStorePassword, nebo implicitně pomocí výchozího úložiště důvěryhodnosti Java Virtual Machine (JVM).
Vlastnost trustStore určuje cestu (včetně názvu souboru) k souboru trustStore certifikátu, který obsahuje seznam certifikátů, kterým klient důvěřuje. Vlastnost trustStorePassword určuje heslo použité ke kontrole integrity dat trustStore. Další informace o použití výchozího úložiště důvěryhodnosti JVM najdete v tématu Konfigurace klienta pro šifrování.
Následující příklad kódu ukazuje, jak nastavit trustStore a trustStorePassword vlastnosti v připojovacím řetězci:
String connectionUrl =
"jdbc:sqlserver://localhost:1433;" +
"databaseName=AdventureWorks;integratedSecurity=true;" +
"encrypt=true; trustServerCertificate=false;" +
"trustStore=storeName;trustStorePassword=storePassword";
Ovladač JDBC poskytuje další vlastnost hostNameInCertificate, která určuje název hostitele serveru. Hodnota této vlastnosti se musí shodovat s vlastností subjektu certifikátu.
Následující příklad kódu demonstruje použití vlastnosti hostNameInCertificate v připojovacím řetězci:
String connectionUrl =
"jdbc:sqlserver://localhost:1433;" +
"databaseName=AdventureWorks;integratedSecurity=true;" +
"encrypt=true; trustServerCertificate=false;" +
"trustStore=storeName;trustStorePassword=storePassword;" +
"hostNameInCertificate=hostName";
Poznámka:
Případně můžete nastavit hodnotu vlastností připojení pomocí odpovídajících metod setter poskytovaných SQLServerDataSource třídy.
Pokud je vlastnost encryptpravdivá, vlastnost trustServerCertificate je false a název serveru v připojovacím řetězci neodpovídá názvu serveru v certifikátu TLS, bude vydána následující chyba: The driver couldn't establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "java.security.cert.CertificateException: Failed to validate the server name in a certificate during Secure Sockets Layer (SSL) initialization." S verzí 7.2 a novější ovladač podporuje odpovídající vzor zástupných znaků v nejlevějším štítku názvu serveru v certifikátu TLS.