• Full(Strict) 안전하게 적용하기 + Origin 인증서 발급

    2026. 9. 6.

    by. 안다형

    Full (Strict) 안전하게 적용하기, Origin 인증서 발급부터

    앞선 글에서 목표는 Full (Strict)이라고 했습니다. 그런데 원본 서버에 인증서가 없는 상태에서 모드만 바꾸면 사이트가 그 즉시 멈춥니다. 그래서 순서가 전부입니다.

    안녕하세요, 코딩하는 안다형입니다. 이 글에서는 Cloudflare Origin 인증서를 발급해 서버에 설치하고 Full (Strict)로 올리는 과정을 순서대로 정리했습니다. 인증서 값은 무료이고, 유효기간을 15년까지 지정할 수 있어 한 번 하면 오래 잊고 지낼 수 있습니다.

    3줄 요약
    1. 인증서를 먼저 설치하고, 모드를 나중에 바꿉니다. 반대로 하면 사이트가 멈춥니다.
    2. Origin 인증서는 Cloudflare를 거칠 때만 유효합니다. 원본에 직접 접속하면 경고가 뜹니다.
    3. 개인 키는 발급 화면에서 한 번만 표시됩니다. 그 자리에서 복사해 두세요.

    적용 순서: 인증서 발급, 서버 설치, 모드 변경, 확인

    왜 순서가 중요한가

    Full (Strict)는 Cloudflare가 원본 서버에 https로 접속하고, 그 인증서가 유효한지 검증하는 모드입니다. 그러니 이 셋이 미리 준비돼 있어야 합니다.

    • 원본 서버가 443번 포트를 듣고 있어야 합니다.
    • 그 포트에 유효한 인증서가 설치돼 있어야 합니다.
    • 인증서에 적힌 도메인이 실제 도메인과 일치해야 합니다.

    준비가 안 된 상태에서 모드를 먼저 바꾸면 525나 526 오류가 뜨고 사이트 전체가 열리지 않습니다. 반대로 인증서를 먼저 설치하는 것은 아무 위험이 없습니다. 설치만 해두고 모드를 안 바꾸면 그냥 준비된 상태로 대기하는 것뿐입니다.

    1단계. Origin 인증서 발급

    Cloudflare 대시보드에서 도메인을 선택하고 SSL/TLS 메뉴로 들어갑니다. 그 안의 원본 서버(Origin Server) 항목에서 인증서를 만들 수 있습니다.

    발급 화면에서 고르는 항목

    • 키 종류: RSA와 ECC 중에 고릅니다. 잘 모르겠으면 기본값(RSA)으로 두세요. 호환성이 가장 넓습니다.
    • 호스트명: 기본으로 내도메인.com*.내도메인.com이 채워져 있습니다. 이 두 개면 루트와 모든 1단계 서브도메인이 커버되니 그대로 두면 됩니다.
    • 유효기간: 7일부터 15년까지 고를 수 있습니다. 15년을 권합니다. 갱신 작업을 아예 없앨 수 있고, 필요하면 언제든 폐기하고 새로 발급하면 됩니다.

    받아 두어야 하는 두 가지 값

    생성하면 화면에 두 덩어리가 나옵니다.

    • Origin Certificate: 인증서 본문입니다. 나중에 다시 확인할 수 있습니다.
    • Private Key: 개인 키입니다. 이 화면을 닫으면 다시 볼 수 없습니다. 반드시 그 자리에서 복사해 안전한 곳에 저장하세요.

    개인 키를 놓쳤다면 방법은 하나입니다. 그 인증서를 폐기하고 처음부터 다시 발급하는 것입니다. 어려운 일은 아니지만 굳이 두 번 할 필요는 없죠.

    2단계. 서버에 설치

    받은 두 값을 서버에 파일로 저장합니다. 경로는 자유지만 관례적인 위치를 쓰는 게 나중에 찾기 쉽습니다.

    sudo mkdir -p /etc/ssl/cloudflare
    sudo nano /etc/ssl/cloudflare/origin.pem
    sudo nano /etc/ssl/cloudflare/origin.key
    sudo chmod 600 /etc/ssl/cloudflare/origin.key

    마지막 줄이 중요합니다. 개인 키 파일은 소유자만 읽을 수 있게 권한을 조여 두세요. 이 파일이 유출되면 인증서의 의미가 없어집니다.

    Nginx 설정

    server {
      listen 443 ssl;
      server_name 내도메인.com www.내도메인.com;
    
      ssl_certificate     /etc/ssl/cloudflare/origin.pem;
      ssl_certificate_key /etc/ssl/cloudflare/origin.key;
    
      # 나머지 설정
    }

    저장한 뒤 문법을 검사하고 반영합니다.

    sudo nginx -t
    sudo systemctl reload nginx

    Apache 설정

    SSLEngine on
    SSLCertificateFile    /etc/ssl/cloudflare/origin.pem
    SSLCertificateKeyFile /etc/ssl/cloudflare/origin.key

    가상 호스트의 443번 블록 안에 넣고 apachectl configtest로 검사한 뒤 재시작합니다.

    공유 호스팅이라면

    SSH 접근이 없는 환경에서는 관리 패널의 SSL 인증서 설치 메뉴를 씁니다. 인증서 칸에 Origin Certificate를, 개인 키 칸에 Private Key를 붙여 넣으면 됩니다. 중간 인증서(CA Bundle) 칸은 비워 두거나, 업체가 요구하면 Cloudflare가 제공하는 루트 인증서를 넣습니다.

    패널에 이미 무료 인증서가 자동 발급돼 있다면 그걸 그대로 써도 됩니다. 유효한 인증서면 Full (Strict)를 통과합니다. Origin 인증서를 굳이 설치할 필요가 없습니다.

    3단계. Full (Strict)로 전환

    설치가 끝났으면 이제 모드를 올립니다. 그전에 원본이 https로 잘 응답하는지 먼저 확인하세요.

    curl -k -I https://원본IP주소/ -H "Host: 내도메인.com"

    정상 응답이 오면 준비가 끝났습니다. Cloudflare SSL/TLS 개요에서 암호화 모드를 Full (Strict)로 바꿉니다. 적용은 즉시입니다.

    4단계. 확인

    브라우저로 사이트를 열어 보고, 헤더까지 확인하면 확실합니다.

    curl -I https://내도메인.com
    • 200 응답과 cf-ray 헤더가 보이면 성공입니다.
    • 526이 나오면 인증서 검증 실패입니다. 도메인이 인증서에 포함됐는지, 파일 경로가 맞는지 확인하세요.
    • 525가 나오면 SSL 연결 자체가 안 된 것입니다. 443번 포트와 웹서버 SSL 설정을 보세요.

    한 가지 더 확인할 것이 있습니다. 브라우저에서 사이트를 열고 시크릿 창으로도 확인하세요. 이전 상태의 캐시가 남아 판단을 흐리는 경우가 있습니다.

    Origin 인증서 발급 화면의 항목과 성격 정리표

    Origin 인증서 항목 정리

    • 인증서 파일: 서버에 저장하는 인증서 본문입니다. 나중에 다시 확인할 수 있습니다.
    • 개인 키: 키 파일입니다. 발급 화면에서 한 번만 표시됩니다.
    • 유효기간: 최대 15년까지 지정할 수 있어 갱신 부담이 없습니다.
    • 신뢰 범위: Cloudflare를 경유할 때만 유효합니다. 직접 접속에는 무효입니다.
    • 적용 조건: 프록시가 켜져 있어야 합니다. 회색이면 브라우저 경고가 뜹니다.

    이 인증서의 성격을 알아 두세요

    Origin 인증서는 일반 SSL 인증서와 성격이 다릅니다. Cloudflare만 신뢰하는 인증서입니다.

    • 방문자 브라우저는 이 인증서를 신뢰하지 않습니다. 원본 IP로 직접 접속하면 "안전하지 않음" 경고가 뜹니다. 이건 고장이 아니라 설계된 동작입니다.
    • 프록시를 끄면 즉시 경고가 나타납니다. 회색 구름으로 바꾸는 순간 방문자가 원본과 직접 통신하게 되고, 그때 이 인증서가 노출되기 때문입니다.
    • 그래서 프록시를 끌 계획이 있는 도메인에는 Origin 인증서 대신 일반 무료 인증서를 쓰는 게 낫습니다.

    Let's Encrypt와 무엇이 다른가

    둘 다 무료이고 둘 다 Full (Strict)를 통과합니다. 선택 기준은 이렇습니다.

    • Origin 인증서: 갱신이 필요 없습니다(최대 15년). 대신 Cloudflare를 거칠 때만 유효합니다. 프록시를 계속 켜둘 사이트에 적합합니다.
    • Let's Encrypt: 90일마다 자동 갱신이 필요합니다. 대신 브라우저가 신뢰하므로 프록시를 꺼도 문제없습니다. 직접 접속도 필요한 사이트에 적합합니다.

    개인 블로그나 일반 웹사이트라면 Origin 인증서가 편합니다. 갱신 스크립트가 실패해 인증서가 만료되는 사고를 아예 없앨 수 있습니다.

    한 걸음 더: 인증된 원본 가져오기

    보안을 더 조이고 싶다면 Authenticated Origin Pulls를 켤 수 있습니다. 원본 서버가 Cloudflare가 제시하는 클라이언트 인증서를 확인하고, 없으면 연결을 거부하는 방식입니다.

    이걸 켜면 원본 IP를 알아낸 공격자가 직접 접속을 시도해도 인증서가 없어 거부됩니다. 방화벽 IP 허용과 함께 쓰면 원본 보호가 상당히 단단해집니다. 다만 설정이 한 단계 더 복잡하니, 기본 구성이 안정된 뒤에 시도하세요.

    이건 하지 마세요

    • 인증서 설치 전에 모드를 Strict로 바꾸기: 사이트가 즉시 멈춥니다. 순서를 지키세요.
    • 개인 키를 저장하지 않고 화면 닫기: 다시 볼 수 없습니다. 폐기하고 재발급해야 합니다.
    • 개인 키 파일 권한을 열어 두기: 다른 사용자가 읽을 수 있으면 인증서의 의미가 없습니다.
    • 개인 키를 깃 저장소에 올리기: 공개 저장소에 올라간 키는 자동으로 수집됩니다.
    • Origin 인증서를 설치한 채 프록시를 끄기: 방문자에게 경고가 뜹니다. 프록시를 끌 거면 일반 인증서로 바꾸세요.
    • 유효기간을 7일로 두고 잊기: 일주일 뒤 사이트가 멈춥니다. 테스트용 옵션입니다.

    자주 묻는 질문

    Q. Origin 인증서는 정말 무료인가요?

    무료입니다. 무료 플랜에서도 발급 개수 제한 없이 쓸 수 있습니다. 유효기간도 최대 15년까지 지정 가능합니다.

    Q. 개인 키를 잃어버렸습니다.

    복구할 수 없습니다. 해당 인증서를 폐기하고 새로 발급하세요. 새 인증서와 키를 서버에 다시 설치하면 됩니다. 5분이면 됩니다.

    Q. 원본 IP로 접속하면 경고가 뜹니다. 잘못 설치한 건가요?

    정상입니다. Origin 인증서는 브라우저가 신뢰하지 않는 인증서입니다. Cloudflare만 신뢰합니다. 도메인으로 접속했을 때 자물쇠가 정상이면 제대로 설치된 것입니다.

    Q. 526 오류가 계속 납니다.

    세 가지를 확인하세요. 인증서에 해당 도메인이 포함됐는지, 파일 경로가 정확한지, 웹서버를 재시작했는지입니다. 특히 마지막 항목을 빼먹는 경우가 많습니다.

    Q. 서브도메인도 함께 커버되나요?

    발급할 때 호스트명에 *.내도메인.com이 들어 있으면 1단계 서브도메인이 모두 커버됩니다. a.b.내도메인처럼 2단계라면 발급 시 그 이름을 명시적으로 추가해야 합니다.

    Q. 이미 다른 유료 인증서를 쓰고 있는데 바꿔야 하나요?

    아닙니다. 유효한 인증서면 무엇이든 Full (Strict)를 통과합니다. 기존 인증서를 그대로 쓰고 모드만 올리면 됩니다.

    마무리

    정리하면 Origin 인증서 발급 → 서버에 파일 설치와 권한 설정 → 웹서버 재시작 → Full (Strict) 전환 → 헤더로 확인 순서입니다. 처음 해도 30분 안에 끝납니다.

    가장 중요한 두 가지만 기억하세요. 개인 키는 그 자리에서 저장하고, 인증서를 먼저 설치한 다음 모드를 바꾸는 것입니다. 이 두 개만 지키면 사이트가 멈추는 일 없이 안전한 상태로 올라갑니다.

     

    함께 보면 좋은 글

    반응형

    댓글