SSL_ERROR_RX_RECORD_TOO_LONG 오류는 대상 보안 서버에서 SSL 트래픽이 올바르게 설정되지 않았을 때 발생합니다. 또한 프록시가 잘못 구성되어 443 포트에서 SSL 핸드셰이크를 제대로 처리하지 못하는 경우에도 이 오류가 나타날 수 있습니다.
쉽게 말해, 브라우저가 보안 데이터를 검증하지 못한다는 의미이며, 이는 대부분 SSL 인증서가 올바르게 구성되지 않았기 때문입니다. 이 오류는 다른 브라우저에 비해 Firefox에서 더 자주 보고되는 편입니다.
이 글을 읽는 독자는 크게 두 가지 유형으로 나눌 수 있습니다. 하나는 특정 웹사이트에 접속하려다 오류를 마주한 일반 사용자이고, 다른 하나는 서버를 직접 운영하며 문제를 해결하려는 기술 사용자입니다. 두 유형 모두를 위한 해결 방법을 정리했으며, 기술 사용자용 솔루션에는 제목 앞에 '고급 사용자용'이라고 표시해 두었습니다.
방법 1: HTTP 프로토콜로 사이트 접속하기
특정 웹사이트에 접속하려는 일반 사용자에게 가장 간단한 방법은 HTTPS 대신 HTTP 프로토콜을 사용하는 것입니다. HTTPS는 보안 핸드셰이크와 SSL 인증서를 필요로 하지만, 서버 측 보안 메커니즘에 문제가 있더라도 기본 HTTP로는 여전히 사이트에 접근할 수 있습니다.
- 브라우저를 열고 웹사이트 주소를 입력한 후 Enter 키를 누릅니다. 브라우저가 자동으로 프로토콜을 HTTPS로 설정하는 경우가 많습니다.
- 주소창을 수정하여 프로토콜을 HTTP로 변경합니다.
- 다시 웹사이트에 접속하여 오류가 계속 발생하는지 확인합니다.
방법 2: Firefox에서 프록시 비활성화하기
이 문제를 겪는 대부분의 사용자는 Firefox를 브라우저로 사용하고 있습니다. Firefox는 오랫동안 이러한 문제를 일으켜 왔으며, 모든 프록시를 비활성화한 후 문제가 해결되었다는 사용자 보고가 많습니다. 참고로 '네트워크 프록시 자동 감지'는 '프록시 사용 안 함'과 동일하지 않습니다.
- Firefox를 열고 우측 상단의 메뉴 아이콘을 클릭한 후 '설정(Options)'을 선택합니다.
- 메뉴를 탐색하여 '네트워크 프록시(Network Proxy)' 항목을 찾아 클릭한 뒤, '프록시 사용 안 함(No proxy)' 옵션을 선택합니다.
- 변경 사항을 저장하고 Firefox를 재시작한 후 문제가 해결되었는지 확인합니다.
방법 3: 백신 소프트웨어 비활성화하기
이 오류는 컴퓨터에 설치된 백신 소프트웨어의 간섭으로 인해 발생할 수도 있습니다. 일부 백신 프로그램은 네트워크 트래픽을 모니터링하고 모든 인증서를 검증하는 방식으로 컴퓨터를 보호합니다.
이 경우 직접 백신 설정을 살펴보고 해당 기능을 제공하는 옵션이 있는지 확인해야 합니다. 예를 들어 AVG의 'HTTP 스캐닝' 기능이 대표적입니다. 이러한 유형의 보호 기능을 모두 비활성화한 후 웹사이트에 다시 접속해 보세요.
그래도 문제가 해결되지 않으면 백신 프로그램을 완전히 비활성화할 수 있습니다. 비활성화 후 컴퓨터를 재시작하고 사이트에 문제없이 접속되는지 확인하세요.
방법 4: TLS 1.3 비활성화하기 (고급 사용자용)
또 다른 우회 방법은 Firefox 설정에서 TLS 1.3 프로토콜을 비활성화하는 것입니다. 문제가 해결되지 않으면 언제든 설정을 되돌릴 수 있습니다.
- Firefox 주소창에 'about:config'를 입력합니다.
- 'tls.version.max' 항목을 검색합니다.
- 값을 4에서 3으로 변경합니다. 값 4는 TLS 1.3을, 3은 TLS 1.2를 의미합니다.
- 브라우저를 재시작하고 문제가 해결되었는지 확인합니다.
방법 5: Firefox 추가 문제 해결 방법
위의 방법 외에도 Firefox 브라우저에서 시도해 볼 수 있는 추가 해결책은 다음과 같습니다.
- 캐시를 삭제하고 Firefox를 최신 버전으로 업그레이드합니다.
- Firefox의 모든 애드온(확장 기능)을 끕니다.
- 브라우저를 완전히 새로 고침합니다. 단, 이 과정에서 북마크가 삭제될 수 있으니 주의하세요.
- tls.version.max 값을 0으로 설정합니다.
- 위의 모든 방법이 실패하면 Chrome 같은 대체 브라우저로 해당 사이트를 열어 보세요.
방법 6: 인증서 설정 변경하기 (고급 사용자용)
서버 측에서는 인증서 관련 값을 일부 변경하는 것만으로도 문제를 해결할 수 있는 경우가 있습니다. 아래 코드는 그 예시입니다.
여기서 default:443을 example.dev:443으로 변경하면 됩니다.
방법 7: nginx.conf 파일 수정하기 (고급 사용자용)
시도해 볼 수 있는 또 다른 방법은 nginx.conf 파일을 수정하는 것입니다. 이 방법은 Nginx로 사이트를 운영하는 사용자에게 해당되며, 역시 443 포트 관련 설정을 조정하는 것이 핵심입니다.
아래 코드 예시를 통해 수정 방법을 확인할 수 있습니다.
listen 443;을 listen 443 ssl;로 변경하고, 'ssl on;' 라인은 삭제합니다. 그런 다음 문제가 해결되었는지 확인하세요.
참고: phpmyadmin 등에 SSL/HTTPS를 강제 적용하려는 경우 이 설정이 누락되면 동일한 문제가 발생할 수 있으며, 이때는 a2ensite default-ssl 명령을 활용하면 됩니다.
방법 8: 추가 점검 사항 (고급 사용자용)
위의 방법들 외에도 다음 사항들을 반드시 확인해야 합니다.
- 서버에서 443 포트가 열려 있고 활성화되어 있는지 확인합니다. 443은 HTTPS 통신의 표준 포트입니다.
- SSL이 비표준 포트를 사용 중이라면 Firefox에서 이 오류가 발생할 수 있습니다. SSL이 443 포트에서 실행되고 있는지 확인하세요.
- Apache2를 사용하는 경우 SSL 포트가 443인지 확인합니다. httpd.conf 파일을 다음과 같이 설정하면 됩니다.
- SSL 인증서가 만료되지 않았는지 확인합니다.
- Apache2 사용 시 vhost 설정 파일을 점검하세요. <VirtualHost>를 _default_로 변경했을 때 오류가 해결되었다는 사례도 보고되었습니다.
- 하나의 IP에는 하나의 SSL 인증서만 사용해야 합니다. 모든 SSL 인증서가各自 전용 IP를 사용하도록 구성하세요.
- Apache에서 Listen <포트> 지시문이 보안이 적용되는 웹사이트의 VirtualHost 지시문 내 포트 번호와 일치하는지, 그리고 SSL 설정 구문(SSLEngine On, SSLCertificateFile <파일명> 등)이 해당 VirtualHost 지시문 안이나 서버의 SSL 설정 파일에 포함되어 있는지 확인합니다.