CSR.pluscsr.plus
← 기사 목록으로 돌아가기
문제 해결2026-08-15•4분 읽기

TLS 버전 및 암호 불일치: 협상 실패

· CSR.plus 팀

TLS 버전 및 암호 불일치: 협상 실패
  • •"no shared cipher" 또는 버전 오류로 인한 핸드셰이크 실패는 양측이 호환 가능한 TLS 옵션을 전혀 공유하지 못함을 의미합니다.
  • •서버가 활성화한 버전과 스위트를 클라이언트 지원과 대조하세요.
  • •현대적이고 넓은 조합을 활성화: 표준 ECDHE AES-GCM 스위트로 TLS 1.2 + 1.3.
No shared cipher
전형적 메시지
openssl s_client 출력
TLS 1.2
현대 최소
1.2 + 1.3 활성화
ECDHE
키 교환
P-256 또는 X25519
TLS 1.0/1.1
레거시 클라이언트
모든 주요 환경에서 폐기

"no shared cipher"의 의미

협상 중 클라이언트는 지원 스위트를 보내고 서버는 자신도 지원하는 것을 고릅니다. 교집합이 비어 있으면 OpenSSL은 "no protocols available" 또는 "no shared cipher"를 보고합니다. 브라우저에서는 같은 원인이 ERR_SSL_VERSION_OR_CIPHER_MISMATCH로 나타납니다. TLS 1.3과 현대 스위트만 활성화한 서버에 구형 클라이언트가 붙는 것이 전형적 방아쇠입니다.

openssl 출력 읽기

openssl s_client -connect host:443 -servername host는 성공 시 "Protocol : TLSv1.3"과 "Cipher : TLS_AES_256_GCM_SHA384"를 출력합니다. 실패 시 "no protocols available"(버전 격차) 또는 "no shared cipher". openssl ciphers -v로 빌드가 제공하는 스위트를 나열하고, s_client -tls1_2 / -tls1_3로 각 버전을 따로 테스트하세요.

올바른 서버 설정

TLS 1.2와 1.3을 활성화하고 그 이하는 비활성화하세요. 표준 현대 스위트를 유지: 1.3은 TLS_AES_256_GCM_SHA384와 TLS_AES_128_GCM_SHA256, 1.2는 ECDHE-ECDSA/ECDHE-RSA와 AES-256-GCM·AES-128-GCM. 정말 구형 클라이언트를 지원할 때만 레거시 스위트를 추가하고 트레이드오프를 기록하세요.

FAQ

구형 기기에 TLS 1.0/1.1이 필요한가요?

모든 주요 브라우저와 OS가 TLS 1.0/1.1을 비활성화했습니다. 구형 임베디드 기기 지원은 호환성 판단입니다 — 필요하면 해당 클라이언트를 별도 vhost로 격리하세요.

HTTP/3이 구형 클라이언트를 돕나요?

아니요 — HTTP/3은 QUIC/TLS 1.3 위에서 동작하며 구형 클라이언트는 이를 못 씁니다. HTTP/2와 HTTP/3은 공존하고, 협상 문제는 TLS 계층에 있습니다.

UptimeRobot

SSL과 가동 시간을 무료로 모니터링

UptimeRobot이 인증서와 엔드포인트를 24시간 감시합니다——무료 플랜에 모니터 50개.

UptimeRobot 무료 체험

제휴 링크——추가 비용 없이 저희가 커미션을 받을 수 있습니다.

무료 SSL/TLS 도구

몇 초 만에 인증서를 검증하고 검사하세요.

관련 기사