왜 이 문제를 다루게 되었는가?
최근 프로젝트에서 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 활성화)
- 인터넷 옵션 → 고급 탭으로 이동
- 아래 항목이 체크되어 있는지 확인
- 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는 기본적으로 엄격하게 차단합니다.
'IT 기초부터 실무까지' 카테고리의 다른 글
자바 생태계와 스프링 프레임워크에 대한 이해 (0) | 2025.09.23 |
---|---|
A4 절반에 당신의 성과를 담아내는 법 (3) | 2025.08.17 |
인코딩(Encoding)이란? (2) | 2025.06.06 |