Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Gli esempi in questo articolo descrivono come usare le proprietà della stringa di connessione che consentono alle applicazioni di usare la crittografia TLS (Transport Layer Security) in un'applicazione Java. Per altre informazioni sulle nuove proprietà della stringa di connessione, ad esempio encrypt, trustServerCertificate, trustStore, trustStorePassword e hostNameInCertificate, vedere Impostazione delle proprietà delle connessioni.
Se la proprietà encrypt è impostata su true e la proprietà trustServerCertificate è impostata su true, il driver Microsoft JDBCper SQL Server non convalida il certificato TLS di SQL Server. Questa impostazione viene usata comunemente per consentire le connessioni in ambienti di test, ad esempio nel caso in cui l'istanza di SQL Server disponga solo di un certificato autofirmato.
L'esempio di codice seguente illustra come impostare la proprietà trustServerCertificate in una stringa di connessione:
String connectionUrl =
"jdbc:sqlserver://localhost:1433;" +
"databaseName=AdventureWorks;integratedSecurity=true;" +
"encrypt=true;trustServerCertificate=true";
Se la proprietà encrypt è impostata su true e la proprietà trustServerCertificate è impostata su false, il driver Microsoft JDBCper SQL Server convalida il certificato TLS di SQL Server. La convalida del certificato del server fa parte dell'handshake TLS e assicura che il server a cui si esegue la connessione sia quello corretto. Per la convalida del certificato del server è necessario che in fase di connessione venga fornito il materiale relativo all'attendibilità usando in modo esplicito le proprietà di connessione trustStore e trustStorePassword oppure usando in modo implicito l'archivio di scopi predefinito di JVM (Java Virtual Machine) sottostante.
La proprietà trustStore specifica il percorso (incluso il nome file) del file trustStore, che contiene l'elenco di certificati considerati attendibili dal client. La proprietà trustStorePassword specifica la password usata per verificare l'integrità dei dati del file trustStore. Per altre informazioni sull'uso dell'archivio di attendibilità predefinito di JVM, vedere Configurazione del client per la crittografia.
L'esempio di codice seguente illustra come impostare le proprietà trustStore e trustStorePassword in una stringa di connessione:
String connectionUrl =
"jdbc:sqlserver://localhost:1433;" +
"databaseName=AdventureWorks;integratedSecurity=true;" +
"encrypt=true; trustServerCertificate=false;" +
"trustStore=storeName;trustStorePassword=storePassword";
Il driver JDBC è dotato di un’altra proprietà, hostNameInCertificate, che specifica il nome host del server. Il valore di questa proprietà deve corrispondere alla proprietà relativa al soggetto del certificato.
L'esempio di codice seguente illustra come usare la proprietà hostNameInCertificate in una stringa di connessione:
String connectionUrl =
"jdbc:sqlserver://localhost:1433;" +
"databaseName=AdventureWorks;integratedSecurity=true;" +
"encrypt=true; trustServerCertificate=false;" +
"trustStore=storeName;trustStorePassword=storePassword;" +
"hostNameInCertificate=hostName";
Nota
In alternativa, è possibile impostare il valore delle proprietà di connessione usando i metodi setter appropriati offerti dalla classe SQLServerDataSource.
Se la proprietà encrypt è true, la proprietà trustServerCertificate è false e il nome del server nella stringa di connessione non corrisponde al nome del server nel certificato TLS, viene restituito l'errore seguente: 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."
. Con la versione 7.2 e successive, il driver supporta la corrispondenza dei criteri di ricerca con caratteri jolly nell'etichetta all'estrema sinistra del nome del server nel certificato TLS.
Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoFormazione
Certificazione
Microsoft Certified: Azure Database Administrator Associate - Certifications
Amministrare un'infrastruttura di database SQL Server per database relazionali, ibridi, locali e cloud con le offerte di database relazionali Microsoft PaaS.
Documentazione
Informazioni sul supporto della crittografia - JDBC Driver for SQL Server
Informazioni su come verificare se JDBC Driver usa la crittografia TLS per proteggere le connessioni a un database SQL.
Configurazione del client per la crittografia - JDBC Driver for SQL Server
Informazioni sulla crittografia lato client e sui certificati per garantire la sicurezza dei client che usano Microsoft JDBC Driver per SQL Server.
Informazioni sulla formattazione della stringa di connessione usata da Microsoft JDBC Driver per SQL Server. Esempi di stringhe di connessione sono disponibili nella sezione relativa agli esempi.