Azure 웹 사이트에서 VM 역할의 DB를 연결할 때 "신뢰할 수없는 기관에서 인증서 체인을 발급했습니다"


191

Azure 웹 사이트에서 VM 역할 (SQL VM 역할 있음)에있는 내 DB를 연결할 때 오류가 발생합니다. VM 역할과 Azure 웹 사이트는 모두 서쪽 영역에 있습니다. 다음 문제에 직면하고 있습니다.

SqlException (0x80131904) : 서버와의 연결에 성공했지만 로그인 프로세스 중에 오류가 발생했습니다. (제공자 : SSL 제공자, 오류 : 0-인증 체인이 신뢰할 수없는 기관에서 발행했습니다.)]

SSMS를 사용하여 DB에 연결할 수 있습니다. 내 VM 역할에서 1433 포트가 열려 있습니다. 내 연결에 어떤 문제가 있습니까?

답변:


367

SQL VM의 신뢰할 수있는 루트 저장소에 CA 서명 인증서가 설치되어 있지 않을 수 있습니다.

Encrypt=True연결 문자열에있는 경우 이를 해제 (권장하지 않음)로 설정하거나 연결 문자열에 다음을 추가하십시오.

TrustServerCertificate=True

SQL Server는 사용할 인증서를 설치하지 않으면 자체 서명 된 인증서를 만들지 만 연결 문자열에 서버 인증서를 신뢰하도록 지시하지 않는 한 CA가 서명하지 않았기 때문에 호출자가 신뢰하지 않습니다. 기본.

장기적으로 Let 's Encrypt 를 활용하여 알려진 신뢰할 수있는 CA로부터 CA 서명 된 인증서를 무료로 가져 와서 VM에 설치하는 것이 좋습니다. 자동으로 새로 고침하도록 설정하는 것을 잊지 마십시오. SQL Server 온라인 설명서의 "암호화 계층 구조"및 "유효성 검사없이 암호화 사용"항목에서이 항목에 대한 자세한 내용을 읽을 수 있습니다.


1
죄송합니다, 나쁜 점입니다. TTrusted_Connection = False가 연결 문자열에 설정되었습니다. 그것을 사실로 설정하면 나에게 효과적입니다. 어쨌든 고맙습니다
ZafarYousafi

1
@ZafarYousafi이 답변을 올바른 것으로 표시해야합니다.
Termato

5
그것은 조언 설정에 좋지 않다 TrustServerCertificatetrue--This 비활성화 인증서 확인. 그것은 단지 설정 Encrypt하는 것보다 낫지 않습니다 false!
Matt Thomas

5
이 답변에 "TrustServerCertificate = True"라는 조언은 문제를 해결할 수 있지만 끔찍한 조언입니다. 증상이 아닌 원인을 수정하십시오. CA 서명 인증서 설치를 제안하는 답변의 다른 부분은 갈 길입니다.
Mitch Wheat

최신 버전의 SSMS에서는 "연결 속성"탭에 "신뢰할 수있는 서버 인증서"라는 옵션이 있습니다. 이 소년을 확인하면 위에 나열된 명령과 동일한 효과가 있습니다.
gwynbleidd

87

SQL Management Studio를 사용하는 경우 연결 속성으로 이동하여 "인증 된 서버 신뢰"를 클릭하십시오. SQL Management Studio를 사용하는 경우 연결 속성으로 이동하여 "인증 된 서버 신뢰"를 클릭하십시오.


18
그 자체로는 나쁜 조언이 아닙니다. 개발 서버에 연결하고 코딩과 같은 작업을 수행해야 할 때 사용할 수 있다고 말하고 싶습니다. 소프트웨어 개발자로서 나는 신속하게 문제를 해결할 시간이없고 마감 시간에 귀중한 시간을 낭비 할 여유가없는 DevOps와 지속적으로 어려움을 겪고 있습니다. 데이터 노출의 무게를 측정하는 것은 로컬 또는 원격 환경, 관리자의 설정 방법, IP 제한 및 다른 해결 방법으로 쉽게 완화 할 수있는 환경에 따라 다릅니다. 인프라에 대한 약간의 정보가 없으면 나쁜 조언이라고 말할 수 없습니다.
OrizG

당신은 내 하루를 저장했습니다. 감사합니다 @ ct.tan
Milinda Wickramasinghe

@OrizG 로컬 컴퓨터에 SQL Server가 설치되어 있으며 개인 프로젝트에 사용합니다. 지금은 1 페니를 쓰고 싶지 않기 때문에 무료 호스트를 얻었고 인증서를 Ca 서명하고 서버와 클라이언트간에 교환하는 방식으로 서버를 구성하려고했습니다. 액세스하는 데 사용합니다. 그러나 무료 호스트 때문에 Let 's Encrypt로는 그렇게 할 수 없었습니다. 신뢰할 수있는 CA 서명 인증서로 인증서 교환을 올바르게 수행하는 것과 비교하여이 솔루션의 단점은 정확히 무엇입니까?
ccoutinho

31

SSMS를 사용하여 연결을 시도 할 때이 오류 메시지가 표시되면 TrustServerCertificate=True추가 연결 매개 변수에 추가하십시오.


23
미치, 당신은이 질문에 대한 세 가지 답변에 대해 동일한 의견을 말했습니다. 실질적인 정보를 제공했거나 이것이 왜 "정말 나쁜 조언"인지에 대한 링크를 제공한다면 다른 독자에게 도움이 될 것입니다.
Shoeless

@Shoeless 허용되는 답변에 대한 의견이 몇 가지 있습니다.
Tom Blodget 님이

4

Visual Studio 2015의 데이터 연결을 통해 액세스하려고하고 위의 오류 TrustServerCertificate=True 가 발생하면 고급으로 이동하여 오류가 사라지도록 설정하십시오.


9
그 자체로는 나쁜 조언이 아닙니다. 개발 서버에 연결하고 코딩과 같은 작업을 수행해야 할 때 사용할 수 있다고 말하고 싶습니다. 소프트웨어 개발자로서 나는 신속하게 문제를 해결할 시간이없고 마감 시간에 귀중한 시간을 낭비 할 여유가없는 DevOps와 지속적으로 어려움을 겪고 있습니다. 데이터 노출의 무게를 측정하는 것은 로컬 또는 원격 환경, 관리자의 설정 방법, IP 제한 및 다른 해결 방법으로 쉽게 완화 할 수있는 환경에 따라 다릅니다. 인프라에 대한 약간의 정보가 없으면 나쁜 조언이라고 말할 수 없습니다.
OrizG

1

IIS에서 SQLServer에 액세스하는 동안 동일한 문제가 발생했습니다. TrustServerCertificate = True를 추가해도 도움이되지 않았습니다.

MS 문서에서 주석을 볼 수 있습니다. SQLServer 서비스 계정이 사용중인 TLS 인증서에 액세스 할 수 있는지 확인하십시오. (NT 서비스 \ MSSQLSERVER)

개인 저장소를 열고 인증서-> 개인 키 관리-> SQL 서비스 계정 추가를 마우스 오른쪽 단추로 클릭하고 모든 권한을 부여하십시오.

SQL 서비스를 다시 시작하십시오. 효과가있었습니다.


0

ssms 클라이언트 자체에서도 마찬가지입니다. ssms를 열고 서버 이름을 삽입 한 다음 제목 연결 속성 아래의 옵션에서 신뢰 서버 인증서를 확인하십시오.


0

SSMS를 통해 Excel 데이터를 SQLDatabase로 가져 오는 동안이 문제가 발생했습니다. 해결책은 TrustServerCertificate = True보안 섹션에서 설정하는 것 입니다


0

연결에 트러스트 서버 인증서가 확인 TrustServerCertificate=True되어 있고 고급 섹션에 추가되었지만 프로파일 러를 실행하려고 시도하는 동안이 오류가 발생했습니다 . 관리자로 실행중인 SSMS 인스턴스로 변경했으며 프로파일 러가 아무런 문제없이 시작되었습니다. (이전에는 로컬 연결조차도 관리자의 도움으로 실행하는 데 오랜 시간이 걸렸음을 알았습니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.