SQL Server에 대한 연결을 암호화하는 특수 사례
클라이언트 컴퓨터는 클라이언트가 TLS(전송 계층 보안) 암호화를 요청할 수 있도록 서버 인증서를 신뢰해야 하며 인증서가 서버에 이미 있어야 합니다. SQL Server 암호화에 대한 가장 일반적인 시나리오에는 다음과 같은 환경이 포함됩니다.
- SQL Server에 대한 모든 들어오는 클라이언트 연결에 대해 암호화를 적용합니다.
- Windows에서 이미 신뢰하는 퍼블릭 상업용 인증 기관의 인증서를 사용합니다. CA의 해당 루트 인증서는 네트워크의 모든 컴퓨터에 있는 신뢰할 수 있는 루트 인증 기관 인증서 저장소에 설치됩니다.
이 시나리오에서는 연결 암호화를 위한 SQL Server 데이터베이스 엔진 구성에 설명된 절차에 따라 암호화를 위해 SQL Server를 구성한 후 성공적인 암호화를 위해 추가 단계를 수행할 필요가 없습니다. 이 문서에서는 연결 암호화를 위한 SQL Server 데이터베이스 엔진 구성에서 다루지 않는 덜 일반적인 시나리오에 대해 SQL Server에 대한 연결을 암호화하는 절차를 제공합니다.
참고 항목
Microsoft 신뢰할 수 있는 루트 프로그램의 전체 참가자 목록은 참가자 목록 - Microsoft 신뢰할 수 있는 루트 프로그램을 참조하세요.
퍼블릭 상업용 인증 기관에서 발급한 인증서를 사용하고 일부 클라이언트에만 암호화된 연결이 필요합니다.
인증서를 사용하도록 SQL Server 구성에 설명된 절차에 따라 SQL Server 인증서를 구성합니다.
연결 속성의 암호화 키워드를 예 또는 True로 지정합니다. 예를 들어 Microsoft ODBC Driver for SQL Server를 사용하는 경우 연결 문자열에서
Encrypt=yes;
를 지정해야 합니다.
내부 CA에서 발급하거나 New-SelfSignedCertificate 또는 makecert를 사용하여 만든 인증서 사용
시나리오 1: SQL Server에 대한 모든 연결을 암호화하려고 합니다.
1단계: 인증서를 사용하도록 SQL Server 구성 및 연결 암호화를 위한 SQL Server 데이터베이스 엔진 구성에 설명된 2단계: SQL Server의 암호화 설정 구성에 설명된 두 절차를 모두 완료한 후 다음 옵션 중 하나를 사용하여 암호화용 클라이언트 응용 프로그램을 구성합니다.
옵션 1:서버 인증서를 신뢰하도록 클라이언트 응용 프로그램을 구성합니다. 이 설정을 사용하면 클라이언트가 서버 인증서의 유효성을 검사하는 단계를 건너뛰고 암호화 프로세스를 계속 진행합니다. 예를 들어 SSMS(SQL Server Management Studio) 20 이상 버전을 사용하는 경우 로그인 페이지(또는 이전 버전의 옵션 페이지)에서 보안 서버 인증서를 선택할 수 있습니다.
옵션 2: 각 클라이언트에서 다음 단계를 수행하여 신뢰할 수 있는 루트 기관 저장소에 인증서의 발급 기관을 추가합니다.
서버 인증서 내보내기에 설명된 절차를 사용하여 SQL Server를 실행 중인 컴퓨터에서 인증서를 내보냅니다.
인증서 내보내기 및 가져오기에 설명된 절차를 사용하여 인증서를 가져옵니다.
시나리오 2: 일부 클라이언트에만 암호화된 연결이 필요합니다.
연결 암호화를 위한 SQL Server 데이터베이스 엔진 구성에서 1단계: 인증서를 사용하도록 SQL Server 구성에 설명된 대로 사용할 SQL Server용 인증서를 구성한 후 다음 옵션 중 하나를 사용하여 암호화를 위해 클라이언트 응용 프로그램을 구성합니다.
옵션 1: 서버 인증서를 신뢰하도록 클라이언트 응용 프로그램을 구성하고 연결 속성의 암호화 키워드를 예 또는 True로 지정합니다. 예를 들어 Microsoft ODBC Driver for SQL Server를 사용하는 경우 연결 문자열에서 Encrypt=Yes;TrustServerCertificate=Yes;
를 지정해야 합니다.
서버 인증서 및 암호화에 대한 자세한 내용은 TrustServerCertificate 사용을 참조하세요.
옵션 2: 각 클라이언트에서 신뢰할 수 있는 루트 기관 저장소에 인증서의 발급 기관을 추가하고 연결 문자열에서 암호화 매개 변수를 예로 지정합니다.
SQL Server를 실행하는 컴퓨터에서 인증서 내보내기에 설명된 절차를 사용하여 SQL Server를 실행 중인 컴퓨터에서 인증서를 내보냅니다.
연결 속성의 암호화 키워드를 예 또는 True로 지정합니다. 예를 들어 Microsoft OLEDB Driver for SQL Server를 사용하는 경우 연결 문자열은 데이터에 대해 암호화 사용 = True를 지정해야 합니다.
SQL Server에서 자동으로 만든 자체 서명된 인증서 사용
시나리오 1: SQL Server로 들어오는 모든 연결을 암호화하려고 합니다.
연결 암호화를 위한 SQL Server 데이터베이스 엔진 구성에 설명된 2단계: SQL Server에서 암호화 설정 구성 절차를 사용하여 SQL Server에서 암호화를 사용하도록 설정합니다.
서버 인증서를 신뢰하도록 클라이언트 응용 프로그램을 구성합니다. 서버 인증서를 신뢰하면 클라이언트가 서버 인증서의 유효성을 검사하는 단계를 건너뛰고 암호화 프로세스를 계속 진행합니다. 예를 들어 SSMS(SQL Server Management Studio) 20 이상 버전을 사용하는 경우 로그인 페이지(또는 이전 버전의 옵션 페이지)에서 보안 서버 인증서를 선택할 수 있습니다.
시나리오 2: 일부 클라이언트에만 암호화된 연결이 필요합니다.
서버 인증서를 신뢰하도록 클라이언트 응용 프로그램을 구성하고 연결 속성의 암호화 키워드를 예 또는 True로 지정합니다. 예를 들어 Microsoft ODBC Driver for SQL Server를 사용하는 경우 연결 문자열에서 Encrypt=Yes;TrustServerCertificate=Yes;
를 지정해야 합니다.
이 시나리오에서는 SQL Server에 추가 구성이 필요하지 않습니다.
Warning
자체 서명된 인증서를 사용하여 암호화된 SSL 연결은 자체 서명된 인증서의 키 길이가 CA에서 생성되는 인증서의 키보다 짧기 때문에 강력한 보안을 제공하지 않습니다. 중간자 공격(man-in-the-middle)을 받기 쉽습니다. 프로덕션 환경이나 인터넷에 연결된 서버에서 자체 서명된 인증서를 사용하는 SSL을 신뢰해서는 안 됩니다.