조회수: 105

SSL_ERROR_NO_CYPHER_OVERLAP 해결

SSL_ERROR_NO_CYPHER_OVERLAP는 Firefox와 서버가 공통 TLS 버전·암호가 없다는 뜻. 프로토콜, 암호, SNI를 3단계로 점검합니다. 무료 SSL 진단으로 바로 확인.

내 도메인에 이 문제가 있는지 지금 확인

무료, 가입 불필요. 이 가이드가 다루는 항목을 바로 검사하고 조치 방법을 알려드립니다.

Problem

Firefox에서 SSL_ERROR_NO_CYPHER_OVERLAP가 표시되고 페이지가 열리지 않습니다. 연결은 TLS 핸드셰이크 도중 — 내용이 뜨기도 전에, 인증서 경고에 도달하기도 전에 — 끊어집니다.

Symptoms

  • Firefox는 SSL_ERROR_NO_CYPHER_OVERLAP, 같은 서버에 대해 Chrome은 ERR_SSL_VERSION_OR_CIPHER_MISMATCH를 표시합니다.
  • 실패가 즉시 발생합니다. “위험: 보안 위험 가능성” 인증서 페이지까지 가지 않습니다.
  • 구형 기기나 구버전 Firefox는 연결되는데 최신 Firefox만 실패하기도 합니다.

이 오류의 실제 의미

“No cypher overlap”은 Firefox의 문자 그대로의 표현입니다. 핸드셰이크에서 클라이언트가 지원하는 TLS 버전과 암호 스위트 목록을 보내면, 서버가 양쪽이 공유하는 하나를 고르고 연결이 이어집니다. 그 교집합이 비면 NSS(Firefox의 TLS 라이브러리)가 바로 이 문자열로 포기합니다.

이름 속 “cypher”는 함정입니다. 낡은 암호만큼이나 낡은 프로토콜 버전이 이 오류를 자주 일으킵니다. 2020년 6월 30일 나온 Firefox 78은 TLS 1.0/1.1을 기본 비활성화했습니다(Mozilla는 Firefox 74에서 먼저 시도했다가 COVID 초기에 잠시 되살렸고, 78에서 마무리했습니다). RFC 8996은 2021년 두 프로토콜을 공식 폐기했습니다. 그래서 TLS 1.0/1.1에 머문 서버는 최신 Firefox와 공유할 버전이 없고, 암호가 문제의 핵심이 아닌데도 “cipher” 오류가 뜹니다.

Top 3 Causes

  1. 서버가 TLS 1.0/1.1(또는 SSLv3)만 제공 - Firefox는 78에서 이들을 기본 제거했습니다. origin이 그 이상을 제공하지 않으면 공통 프로토콜 버전이 없어 암호를 비교하기도 전에 핸드셰이크가 실패합니다.
  2. 약하거나 제거된 암호만 제공 - 서버 암호 목록이 Firefox가 버린 스위트(RC4, export 등급, 3DES 전용 구성)로만 이뤄진 경우. Firefox의 최신 기본 집합과 겹치는 것이 없습니다.
  3. SNI 호스트명에 맞는 인증서 부재 - 서버가 SNI 확장으로 받은 요청 이름에 맞는 인증서가 없어, 하나를 제시하는 대신 협상을 중단합니다.

Diagnose with DechoNet

  • SSL 진단으로 서버가 실제 제공하는 TLS 버전·암호 스위트와 유효 인증서 반환 여부를 확인 — 서버 문제인지 브라우저 문제인지 몇 초 만에 알 수 있습니다.
  • 포트 진단으로 외부에서 443 포트가 도달 가능한지 확인합니다.
  • HTTP 진단으로 HTTP→HTTPS 리다이렉트 동작을 확인합니다.

Resolution Checklist

  • SSL 진단을 먼저 실행. TLS 1.0/1.1만 또는 약한 암호 목록만 나오면 해결은 서버 측 — about:config는 건드리지 마세요.
  • 서버에서 TLS 1.2·1.3을 켜고 SSLv3, TLS 1.0, TLS 1.1을 끕니다.
  • 암호 목록을 최신 집합(Mozilla “intermediate” 프로필이 안전한 기준)으로 교체하고 RC4, 3DES, export 스위트를 제거합니다.
  • Firefox가 보내는 정확한 SNI 호스트명에 맞는 인증서가 설치돼 있는지 확인합니다.
  • CDN이나 로드밸런서가 TLS를 종료한다면 origin뿐 아니라 그곳의 프로토콜·암호 정책을 변경합니다.
  • SSL 진단을 재실행해 TLS 1.2/1.3과 최신 암호가 실제로 협상되는지 확인합니다.

When to Escalate

  • 프로토콜·암호 정책을 직접 수정할 수 없다면 CDN이나 관리형 TLS 제공업체로 에스컬레이션하세요.
  • 레거시 내부 클라이언트가 정말로 구버전 프로토콜을 필요로 한다면, 이는 개별 PC에서 security.tls.version.enable-deprecated를 조용히 켜서 실제 위험을 감추는 대신, 소유자가 의도적으로 내리는 보안 결정으로 다뤄야 합니다.

관련 도구

관련 가이드

가이드 공유

[Ad] Guide Detail Inline
← 전체 가이드 보기