SQL Server 연결할 때 "원격 서버에서 받은 인증서가 신뢰할 수 없는 인증 기관에 의해 발급되었습니다." 오류

이 문서는 SQL Server 암호화된 연결을 시도할 때 발생하는 문제를 해결하는 데 도움이 됩니다.

원래 제품 버전: SQL Server
원본 KB 번호: 2007728

증상

SQL Server에 연결할 때 다음과 같은 오류 메시지가 나타날 수 있습니다.

서버와 연결이 성공적으로 설정되었지만 로그인 프로세스 중에 오류가 발생했습니다. (공급자: SSL 공급자, 오류: 0 - 신뢰할 수 없는 기관에서 인증서 체인을 발급했습니다.) (.Net SqlClient Data Provider)

또한 다음 오류 메시지가 Windows 시스템 이벤트 로그에 기록됩니다.

Log Name:      System  
Source:        Schannel  
Date:          10/13/2020 3:03:31 PM  
Event ID:      36882  
Task Category: None  
Level:         Error  
Keywords:  
User:        USERNAME  
Computer:     COMPUTERNAME  
Description:  
The certificate received from the remote server was issued by an untrusted certificate authority. Because of this, none of the data contained in the certificate can be validated. The TLS connection request has failed. The attached data contains the server certificate.

원인

이 오류는 확인할 수 없는 인증서를 사용하여 SQL Server 암호화된 연결을 만들려고 할 때 발생합니다. 다음과 같은 시나리오에서 이 문제가 발생할 수 있습니다.

시나리오 서버 보안: 클라이언트측 암호화 인증서 형식 신뢰할 수 있는 루트 인증 기관 저장소에 있는 인증서 발급 기관
1 아니요 신뢰할 수 없는 원본에서 인증서를 프로비전합니다(인증서 발급 기관이 클라이언트 컴퓨터의 신뢰할 수 있는 루트 인증 기관에서 신뢰할 수 있는 기관으로 나열되지 않음) 아니요
2 해제 SQL Server 자체 생성 인증서 자체 서명된 인증서는 이 저장소에 표시되지 않습니다.

SQL Server에 대한 암호화된 연결을 설정할 때 보안 채널(Schannel)은 로컬 컴퓨터에서 신뢰할 수 있는 루트 인증 기관 저장소를 검색하여 신뢰할 수 있는 인증 기관 목록을 만듭니다. TLS 핸드셰이크 중에 서버는 클라이언트에 공개 키 인증서를 보냅니다. 공개 키 인증서의 발급자를 CA(인증 기관)라고 합니다. 클라이언트는 인증 기관이 클라이언트가 신뢰하는 기관인지 확인해야 합니다. 신뢰할 수 있는 CA의 공개 키를 미리 알고 있으면 확인할 수 있습니다. Schannel이 이전 두 경우와 같이 신뢰할 수 없는 인증 기관에서 발급한 인증서를 검색하면 증상 섹션에 오류 메시지가 표시됩니다.

해결 방법

신뢰할 수 없는 기관의 인증서 또는 자체 서명 인증서를 의도적으로 사용하여 SQL Server 연결을 암호화하는 경우 다음 옵션 중 하나를 사용할 수 있습니다.

시나리오 1의 경우 암호화된 연결을 시작하는 클라이언트 컴퓨터의 신뢰할 수 있는 루트 인증 기관 저장소에 인증 기관을 추가합니다. 이렇게 하려면 서버 인증서 내보내기를 완료하고 해당 순서의 다음 몇 섹션에 나열된 클라이언트 컴퓨터 프로시저 에 루트 CA(인증 기관)를 설치 합니다.

서버 인증서를 내보냅니다

이 예제에서는 caCert.cer 이라는 파일을 인증서 파일로 사용합니다. 서버에서 이 인증서 파일을 가져와야 합니다. 다음 단계에서는 서버 인증서를 파일로 내보내는 방법을 설명합니다.

  1. 시작, 실행을 차례로 클릭하고 MMC를 입력합니다. (MMC는 Microsoft 관리 콘솔의 약어입니다.)

  2. MMC에서 인증서를 엽니다.

  3. 개인 그리고 인증서를 차례로 확장합니다.

  4. 서버 인증서를 마우스 오른쪽 단추로 클릭한 다음 모든 작업 내보내>기를 선택합니다.

  5. 다음을 클릭하여 인증서 내보내기 마법사의 시작 대화 상자 다음 단계로 이동합니다.

  6. 아니요, 프라이빗 키를 내보내지 않음이 선택되어 있는지 확인한 다음, 다음을 선택합니다.

  7. DER로 인코딩된 이진수 X.509(.CER) 또는 Base-64로 인코딩된 X.509(.CER)를 선택한 다음 다음을 클릭합니다.

  8. 내보내기 파일 이름을 입력합니다.

  9. 다음을 클릭한 다음 마침을 클릭하여 인증서를 내보냅니다.

클라이언트 컴퓨터에 루트 CA(인증 기관) 설치

  1. 클라이언트 컴퓨터에서 MMC에 대한 인증서 스냅인을 시작한 다음 인증서 스냅인을 추가합니다.

  2. 인증서 스냅인 대화 상자에서 컴퓨터 계정을 선택한 다음, 다음을 선택합니다.

  3. 컴퓨터 선택 창에서 로컬 컴퓨터: (이 콘솔이 실행 중인 컴퓨터)를 선택한 다음 마침을 선택합니다.

  4. 확인을 선택하여 스냅인 추가 또는 제거 대화 상자를 닫습니다.

  5. MMC의 왼쪽 창에서 인증서(로컬 컴퓨터) 노드를 확장합니다 .

  6. 신뢰할 수 있는 루트 인증 기관 노드를 확장하고 인증서 하위 폴더 마우스 오른쪽 단추로 클릭하고 모든 작업을 선택한 다음 가져오기를 선택합니다.

  7. 인증서 가져오기 마법사시작 페이지에서다음을 선택합니다.

  8. 가져올 파일 페이지에서 찾아보기를 선택합니다.

  9. caCert.cer 인증서 파일의 위치로 이동하여 파일을 선택한 다음 열기를 선택합니다.

  10. 가져올 파일 페이지에서 다음을 선택합니다.

  11. 인증서 저장소 페이지에서 기본 선택을 수락한 다음, 다음을 선택합니다.

  12. 인증서 가져오기 마법사 완료 페이지에서 마침을 선택합니다.

시나리오 1 및 2의 경우 클라이언트 애플리케이션에서 신뢰 서버 인증서 설정을 true 로 설정합니다.

이 작업을 수행하는 방법에 대한 자세한 내용은 다음 topics 참조하세요.

참고

SQL Server Management Studio 사용하는 경우 옵션 탭을 선택하고 연결 속성 탭에서 서버 인증서 신뢰 옵션을 선택합니다.

주의: 자체 서명된 인증서를 사용하여 암호화된 SSL 연결은 강력한 보안을 제공하지 않습니다. man-in-the-middle 공격에 취약합니다. 프로덕션 환경 또는 인터넷에 연결된 서버에서는 자체 서명 인증서를 사용하는 SSL에 의존하면 안 됩니다.

이 문서의 이전 섹션에서 설명한 구성을 의도하지 않은 경우 다음 옵션 중 하나를 사용하여 이 문제를 해결할 수 있습니다.

  • 데이터베이스 엔진에 대한 암호화된 연결 활성화 절차에 따라 암호화를 사용하도록 데이터베이스 엔진을 구성합니다.

  • 암호화가 필요하지 않은 경우:

    • 클라이언트 애플리케이션에서 암호화 설정(있는 경우)을 사용하지 않도록 설정합니다.

    • SQL Server Configuration Manager를 사용하여 서버측 암호화를 사용하지 않도록 설정합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 서버 구성을 참조하세요.