다음을 통해 공유


SSL 암호화를 사용한 연결

Microsoft SQL Server 2005 JDBC 드라이버 버전 1.2 이상에서는 응용 프로그램에서 SSL(Secure Sockets Layer) 암호화를 사용할 수 있도록 새로운 연결 속성과 새로운 gettersetter 메서드를 제공합니다.

이 항목의 예에서는 Java 응용 프로그램에서 새 연결 문자열 속성을 사용하는 방법에 대해 설명합니다. encrypt, trustServerCertificate, trustStore, trustStorePassword, hostNameInCertificate 등의 새 연결 문자열 속성에 대한 자세한 내용은 연결 속성 설정을 참조하십시오.

encrypt 속성이 true로 설정되고 trustServerCertificate 속성이 true로 설정되어 있는 경우 Microsoft SQL Server JDBC 드라이버는 SQL Server SSL 인증서의 유효성을 검사하지 않습니다. 이 설정은 일반적으로 SQL Server 인스턴스에 자체 서명된 인증서만 있는 경우와 같이 테스트 환경에서 연결을 허용하는 데 필요합니다.

다음 코드 예제는 연결 문자열에 trustServerCertificate 속성을 설정하는 방법을 보여 줍니다.

String connectionUrl = 
    "jdbc:sqlserver://localhost:1433;" +
     "databaseName=AdventureWorks;integratedSecurity=true;" +
     "encrypt=true;trustServerCertificate=true";

encrypt 속성은 true로 설정되어 있고 trustServerCertificate 속성은 false로 설정되어 있는 경우 Microsoft SQL Server JDBC 드라이버는 SQL Server SSL 인증서의 유효성을 검사합니다. 서버 인증서의 유효성 검사는 SSL 핸드셰이크의 일부로 서버가 연결할 올바른 서버인지 확인합니다. 서버 인증서의 유효성을 검사하려면 명시적으로 trustStoretrustStorePassword 연결 속성을 사용하거나 암시적으로 기본 JVM(Java Virtual Machine)의 기본 트러스트 저장소를 사용하여 연결 시에 트러스트 자료를 제공해야 합니다.

trustStore 속성은 클라이언트에서 신뢰하는 인증서 목록이 포함되어 있는 인증서 trustStore 파일에 대한 경로(파일 이름 포함)를 지정합니다. trustStorePassword 속성은 trustStore 데이터의 무결성을 검사하는 데 사용되는 암호를 지정합니다. JVM의 기본 트러스트 저장소를 사용하는 방법은 SSL 암호화에 대한 클라이언트 구성을 참조하십시오.

다음 코드 예제는 연결 문자열에 trustStoretrustStorePassword 속성을 설정하는 방법을 보여 줍니다.

String connectionUrl = 
    "jdbc:sqlserver://localhost:1433;" +
     "databaseName=AdventureWorks;integratedSecurity=true;" +
     "encrypt=true; trustServerCertificate=false;" +
     "trustStore=storeName;trustStorePassword=storePassword";

JDBC 드라이버는 hostNameInCertificate라는 속성을 추가로 제공하는데 이 속성은 서버의 호스트 이름을 지정합니다. 이 속성의 값은 인증서의 주체 속성과 일치해야 합니다.

다음 코드 예제는 연결 문자열에서 hostNameInCertificate 속성을 사용하는 방법을 보여 줍니다.

String connectionUrl = 
    "jdbc:sqlserver://localhost:1433;" +
     "databaseName=AdventureWorks;integratedSecurity=true;" +
     "encrypt=true; trustServerCertificate=false;" +
     "trustStore=storeName;trustStorePassword=storePassword" +
     "hostNameInCertificate=hostName";

참고

또는 SQLServerDataSource 클래스에서 제공하는 적절한 setter 메서드를 사용하여 연결 속성의 값을 설정할 수 있습니다.

참고

개념

SSL 암호화 사용

관련 자료

JDBC 드라이버 응용 프로그램 보안