본문 바로가기
IT 기초부터 실무까지

HTTPS 호출 시 "기본 연결이 닫혔습니다"

by 개발 이야기 2025. 6. 27.

왜 이 문제를 다루게 되었는가?

최근 프로젝트에서 ASP + VBScript 기반 시스템에서 외부 API를 호출해야 하는 상황이 있었습니다.
이때 개인 정보를 URL 파라미터로 넘기기 위해, 다음과 같은 암호화 절차를 따랐습니다:

AES 암호화 → Base64 인코딩 → URL 인코딩 → HTTPS 호출

그런데 문제는, IE에서 HTTPS URL을 호출하면 "기본 연결이 닫혔습니다"라는 에러 메시지가 뜬다는 점이었습니다.


문제 발생: HTTPS 요청 시 연결 끊김 오류

증상

  • 호출 코드에서 .Send() 실행 시 다음과 같은 오류:
기본 연결이 닫혔습니다. 보내기에서 오류가 발생했습니다.
  • 동일 URL을 크롬에서 붙여넣으면 정상 동작
  • IE에서만 "웹페이지를 표시할 수 없습니다" 오류 발생

문제 원인 분석

문제를 해결하기 위해 다음 항목들을 점검:

점검 항목결과
클라이언트 TLS 설정 TLS 1.2 사용
서비스 호출 코드 SSL 적용 여부 ServicePointManager.SecurityProtocol 설정
IE에서 직접 URL 접속 "웹페이지를 표시할 수 없습니다" 발생
인증서 뷰어 확인 인증서의 CN (Common Name)이 abc.re.kr
호출 URL https://localhost/xxx.aspx?... 또는 IP 직접 접근

대부분의 경우 해결되는 방법

1. [클라이언트] IE 보안 설정 (TLS 활성화)

  1. 인터넷 옵션 → 고급 탭으로 이동
  2. 아래 항목이 체크되어 있는지 확인
  • TLS 1.0
  • TLS 1.1
  • TLS 1.2

 

대부분은 "TLS 1.2"가 꺼져 있어서 문제가 발생합니다.

2. [.NET 코드] 보안 프로토콜 명시

호출 코드가 .NET이라면, 아래와 같이 명시적으로 TLS 1.2를 설정합니다.

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

예전 서버는 기본적으로 SSL3.0이나 TLS1.0까지만 지원하게 되어 있어, 명시해주지 않으면 연결이 끊기는 경우가 많습니다.

 

그 외, 결정적 원인

"인증서의 CN이 abc.re.kr인데, URL 호출은 localhost로 하고 있음"
즉, 인증서와 호출 주소의 도메인이 일치하지 않아서 IE에서 연결을 끊은 것입니다.

 

✔ 크롬은 경고만 띄우고 연결을 시도하지만, IE는 기본적으로 엄격하게 차단합니다.