DEV WIKI
인프라 · 오류·증상

Error 525: SSL handshake failed

Cloudflare SSL/TLS 모드가 Full 또는 Full (Strict)일 때 Cloudflare와 원본 웹 서버 사이의 SSL/TLS 핸드셰이크가 완료되지 못하면 표시되는 오류입니다.

빠른 답변

우선 확인할 원인
Cloudflare 525 오류는 Cloudflare와 원본 서버 사이의 SSL 핸드셰이크가 실패했고 SSL/TLS 모드가 Full 또는 Full (Strict)일 때 나타납니다. 원본 서버의 유효한 인증서 설치, 443 포트 개방, SNI 지원, 암호화 스위트 호환 여부를 순서대로 확인해야 합니다.
먼저 확인할 항목
원본 서버에 유효한 SSL 인증서가 설치돼 있는지 확인합니다. 기대 결과는 인증서가 만료·불일치 없이 정상 응답하는 상태입니다.
적용 범위
현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
출처 확인일
2026-07-27
최종 검토
2026-07-23
수정일
2026-08-29
관련 기술
오류·수정 제보 (새 창에서 열림)

현재 증상

  • SSL 핸드셰이크 실패

먼저 확인할 항목

원본 서버에 유효한 SSL 인증서가 설치돼 있는지 확인합니다. 기대 결과는 인증서가 만료·불일치 없이 정상 응답하는 상태입니다.

443 포트(또는 사용 중인 보안 포트)가 열려 있고 외부에서 도달 가능한지 확인합니다. 기대 결과는 해당 포트로 TLS 연결이 성립하는 상태입니다.

원본 서버가 SNI(Server Name Indication)를 지원하는지 확인합니다. 기대 결과는 요청한 호스트 이름에 맞는 인증서가 반환되는 상태입니다.

Cloudflare SSL/TLS 설정이 Full 또는 Full (Strict)인지 확인합니다. 기대 결과는 설정과 원본 인증서 구성이 서로 일치하는 상태입니다.

수정 후 동일 URL을 다시 요청해 525가 재현되는지 확인합니다. 기대 결과는 525가 더 이상 표시되지 않는 상태입니다.

피해야 할 조치

주의

  • 원인을 확인하지 않고 SSL/TLS 모드를 Flexible 등으로 낮추면 원본까지의 암호화가 약해질 수 있으므로, 변경 전에 현재 모드를 기록하고 필요 시 되돌립니다.
  • 525 오류만으로 Cloudflare 자체 장애라고 단정하지 않습니다.
  • 인증서·포트·SNI를 확인하지 않은 채 인증서를 임의로 교체하거나 재발급하지 않습니다.

환경별 원인과 조치

Cloudflare 525 오류Cloudflare와 원본 웹 서버 사이의 SSL 핸드셰이크가 완료되지 못했다는 뜻입니다. 이 오류는 두 조건이 동시에 성립할 때 나타납니다. 하나는 Cloudflare와 원본 서버 간 SSL 핸드셰이크 실패이고, 다른 하나는 Cloudflare의 SSL/TLS 모드가 Full 또는 Full (Strict)로 설정된 경우입니다.

525는 브라우저와 Cloudflare 사이가 아니라, Cloudflare가 원본 서버와 보안 연결을 맺으려다 관찰한 실패 결과입니다.

원본 서버에서 확인해야 하는 항목

관찰 위치확인할 내용
인증서원본 서버에 유효한 SSL 인증서 설치 여부
포트443 또는 사용 중인 보안 포트의 개방·도달 가능 여부
SNI요청 호스트 이름에 맞는 인증서 반환 여부
암호화 스위트Cloudflare와 원본 서버 간 호환되는 cipher 존재 여부

원본 서버의 SSL/TLS 구성이 Cloudflare의 SSL/TLS 모드와 어긋나면 핸드셰이크가 성립하지 못합니다. 인증서를 설치하거나 갱신한 뒤에는 SSL 인증서 점검 후 확인으로 유효기간과 보안 연결을 다시 확인합니다.

추가로 살펴볼 수 있는 자료

  • curl로 원본 서버에 직접 요청해 인증서가 정상 설치됐는지 확인할 수 있습니다.
  • 원본에 별도 신뢰 인증서를 두기 어렵다면 Cloudflare 무료 Origin CA 인증서 설치를 고려할 수 있습니다.
  • 오류 발생 시각의 Apache mod_ssl 또는 nginx SSL 오류 로그를 확인하면 실패 원인을 좁힐 수 있습니다.
  • Origin Analytics로 어느 엔드포인트에서 SSL 실패가 발생하는지 확인해 서버 로그와 대조할 수 있습니다.

한 번의 성공 응답만으로 해결됐다고 판단하지 말고 같은 조건에서 반복 확인합니다.

원인 분포

[Observation] 관측된 사례 기준으로 3건은 서로 다른 원인을 보고합니다.

원인 범주사례 수사례
443 VirtualHost 구성 충돌 또는 누락2사례 1, 사례 3
원본 인증서 부재1사례 3
TLS 구현과 암호화 방식의 호환 문제1사례 2

[Observation] 위 수치는 수집된 사례에서 확인된 항목 수이며, 실제 발생 빈도를 뜻하지 않습니다.

오진 함정

  • [Observation] HTTP가 정상이어도 Cloudflare를 통한 HTTPS 핸드셰이크는 실패할 수 있습니다. 사례 3에서는 HTTP가 동작했지만 HTTPS가 525로 실패했습니다.
  • [Observation] 원본 인증서 문제만 확인해서는 충분하지 않습니다. 사례 1에서는 인증서를 읽지 못하게 한 443 기본 VirtualHost 충돌이 원인이었습니다.
  • [Observation] 서버 구성과 인증서가 있어도 TLS 구현 및 선택한 암호화 방식의 호환 문제로 실패할 수 있습니다. 사례 2에서 해당 문제가 확인되었습니다.

환경 매트릭스

사례원본 환경Cloudflare 모드 또는 경로확인된 원인수정
사례 1Ubuntu, Apache 2.4Full (Strict)기본 443 VirtualHost 충돌로 원본 인증서를 읽지 못함불필요한 기본 443 설정 제거
사례 2Docker, nginxCloudflare 경유OpenSSL과 선택 암호화 방식의 호환 문제TLS 구현 교체
사례 3VPS, Apache, PHPFull 모드원본 인증서 부재, SSL 모듈·443 VirtualHost·인증서 구성 불일치관련 구성을 맞춤

진단 순서

  1. [Observation] 원본 서버에 인증서가 있는지와 Cloudflare SSL 모드가 원본 인증서 요구 조건과 맞는지 확인합니다. 사례 3에서는 원본 인증서 부재와 Full 모드 사용이 원인이었습니다.
  2. [Observation] 443 포트의 VirtualHost 구성을 확인합니다. 사례 1에서는 기본 443 설정 충돌이 인증서 읽기를 막았고, 사례 3에서는 443 VirtualHost 구성이 수정 범위에 포함되었습니다.
  3. [Observation] SSL 모듈 구성을 확인합니다. 사례 3에서는 SSL 모듈 구성이 수정 범위에 포함되었습니다.
  4. [Observation] TLS 구현과 선택한 암호화 방식의 호환성을 확인합니다. 사례 2에서는 이 문제가 확인되었고 TLS 구현 교체 후 성공했습니다.

수정 후 다시 확인

SSL 인증서 점검 후 확인

SSL 인증서 점검 후에는 인증서 유효기간이 남아 있는지, 신뢰된 인증 기관이 발급했는지, 브라우저가 경고 없이 HTTPS 보안 연결을 맺는지, 만료 전 자동 갱신 주기가 설정됐는지를 확인해야 합니다. 한 번의 성공 접속만으로 갱신 문제가 사라졌다고 단정하지 않습니다.

전체 확인 항목 보기

참고 자료

Error 525 · Cloudflare Support docs (새 창에서 열림)

Cloudflare · 공식 자료 · 확인 범위: definition, common-causes, resolution · 확인일: 2026-07-23

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: Ubuntu와 Apache 2.4에서 Cloudflare Full (Strict) 모드의 525가 발생했습니다., 443 포트의 기본 VirtualHost 충돌로 원본 인증서를 읽지 못했습니다., 불필요한 기본 443 설정을 제거한 뒤 해결되었습니다. · 확인일: 2026-07-27

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: Docker에서 실행한 nginx 원본 서버가 Cloudflare 경유 시 525를 반환했습니다., OpenSSL과 선택한 암호화 방식 사이의 호환 문제가 확인되었습니다., TLS 구현을 교체한 뒤 핸드셰이크가 성공했습니다. · 확인일: 2026-07-27

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: Apache와 PHP 사이트에서 HTTP는 동작했지만 Cloudflare HTTPS는 525로 실패했습니다., 원본 VPS에 인증서가 없는 상태에서 Full 모드를 사용했습니다., SSL 모듈, 443 VirtualHost, 원본 인증서 구성을 맞춰 해결했습니다. · 확인일: 2026-07-27