setEncrypt 메서드(SQLServerDataSource)
암호화 속성이 사용되는지 여부를 나타내는 부울 값을 설정합니다.
구문
public void setEncrypt(boolean encrypt)
매개 변수
encrypt
이전에 SSL(Secure Sockets Layer)로 알려진 TLS(전송 계층 보안)가 클라이언트와 SQL Server 간에 암호화를 사용하도록 설정된 경우 true 입니다. 그렇지 않으면 false입니다.
설명
암호화 속성이 true로 설정된 경우 Microsoft JDBC Driver for SQL Server는 서버에 인증서가 설치된 경우 클라이언트와 서버 간에 전송되는 모든 데이터에 대해 SQL Server에서 TLS 암호화를 사용하도록 합니다. 기본값은 false입니다.
JDBC 드라이버는 TLS 핸드셰이크를 설정하려고 할 때 실행 중인 JVM(Java Virtual Machine)을 검색합니다.
encrypt 속성이 true로 설정되어 있는 경우 Microsoft JDBC Driver for SQL Server에서는 JVM의 기본 JSSE 보안 공급자를 사용하여 SQL Server와 SSL 암호화를 협상합니다. 기본 보안 공급자는 TLS 암호화를 성공적으로 협상하는 데 필요한 모든 기능을 지원하지 않을 수 있습니다. 예를 들어 기본 보안 공급자는 SQL Server TLS/SSL 인증서에 사용되는 RSA 공개 키의 크기를 지원하지 않을 수 있습니다. 이 경우 기본 보안 공급자에서 오류가 발생해 JDBC 드라이버가 연결을 종료하게 될 수 있습니다. 이 문제를 해결하려면 다음 중 하나를 수행합니다.
더 작은 RSA 공개 키가 있는 서버 인증서를 사용하여 SQL Server 구성
“<java-home>/lib/security/java.security” 보안 속성 파일에서 다른 JSSE 보안 공급자를 사용하도록 JVM 구성
다른 JVM을 사용합니다.
암호화 속성이 지정되지 않았거나 false로 설정된 경우 드라이버는 TLS 암호화를 지원하도록 SQL Server를 적용하지 않습니다. SQL Server 인스턴스가 TLS 암호화를 강제하도록 구성되지 않은 경우 암호화 없이 연결이 설정됩니다. SQL Server 인스턴스가 TLS 암호화를 강제하도록 구성된 경우 올바르게 구성된 JVM에서 실행할 때 Microsoft JDBC Driver for SQL Server에서 TLS 암호화를 자동으로 사용하도록 설정하거나 연결이 종료되고 드라이버가 오류를 발생합니다.