웹 사이트의 SSL 인증서가 만료되었거나 잘못된 경우, 웹 사용자는 웹 사이트를 로드하지 못할 수 있습니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
보안 소켓 계층(SSL)은 인터넷에서 클라이언트와 서버 간에 이동하는 데이터를 암호화하고 인증하기 위한 프로토콜입니다. 프로토콜의 업데이트된 버전은 Transport Layer Security (TLS)라고 합니다.
SSL/TLS는 SSL 인증서의 사용에 의존합니다. 이 인증서는 데이터 파일이며, 트래픽을 암호화하고 서버의 ID를 확인하는 데 도움이 되는 웹 서버에서 호스팅됩니다. 서버와 클라이언트(서버에 호스팅된 웹사이트에 접속하려는 사람이 사용하는 장치)는 SSL 인증서를 사용하여 대칭적인 암호화 키를 설정하고 안전하고 암호화된 전송을 시작합니다. 이 모든 것이 몇 밀리초 만에 이루어집니다. 사용자와 서버 간에 전달되는 데이터를 암호화하면 데이터 손상을 방지하여 웹 사이트에서 사용자 신뢰를 유지하고 규제 준수 요구 사항을 충족할 수 있습니다.
SSL/TLS 인증서에 문제가 있으면 사용자가 웹 사이트와 애플리케이션을 안전하게 로드하고 액세스하지 못할 수 있습니다. 다음은 사용자와 웹 사이트 관리자에게 발생할 수 있는 일반적인 SSL 인증서 오류(또는 TLS 오류)입니다.
대부분의 SSL 인증서는 인증 기관이라는 외부 기관에서 발급하고 서명합니다. 자체 서명 인증서는 외부 기관에서 인증서를 확인하지 않았으므로 브라우저에서 신뢰받지 못하는 경우가 많습니다. 인증 기관은 다른 이유로 브라우저에서 인정되지 않을 수도 있습니다. 예를 들어, Symantec에서 발급한 SSL 인증서는 주요 브라우저에서 더 이상 신뢰받지 못합니다. 이러한 SSL 인증서 오류로 인해 브라우저에 "연결이 비공개가 아닙니다"라는 메시지가 표시될 수 있으며, 이로 인해 사용자가 웹 사이트를 방문하지 못할 수 있습니다.
더 널리 지원되는 인증 기관에서 SSL 인증서를 발급받으면 이 오류를 해결할 수 있습니다. (예를 들어 Cloudflare에서는 모든 브라우저에서 신뢰받는 SSL 인증서를 무료로 제공합니다.)
인터넷 커뮤니티에서는 취약점을 수정하고 인증 프로세스를 더 빠르게 하기 위해 여러 해에 걸쳐 SSL/TLS 프로토콜을 여러 번 업데이트했으며, SSL에서 TLS로 이름을 변경한 것도 이를 반영합니다.
많은 웹 서비스에서 최신 프로토콜을 사용하기 시작했습니다. 최근에 널리 사용되는 TLS 버전은 TLS 1.3이며, TLS 1.2도 계속 사용되고 있습니다.
가장 안전한 프로토콜만 허용하도록 구성된 웹 호스트 및 웹사이트의 경우 클라이언트는 최소한 TLS 1.2를 지원해야 하며, 그렇지 않으면 TLS 핸드셰이크가 계획대로 이루어질 수 없습니다. (이러한 경우에는 "TLS 클라이언트 자격 증명을 생성하는 동안 치명적인 오류가 발생했습니다"라는 오류가 나타날 수 있습니다.) 이 SSL 인증서 오류를 방지하려면 사용자는 장치의 브라우저와 운영 체제가 가장 안전한 최신 버전의 TLS를 지원하는지 확인해야 합니다.
여권과 같이 정부에서 발급한 일부 신분증이 일정 기간이 지나면 만료되는 것처럼 SSL 인증서도 주기적으로 갱신해야 합니다. 이를 통해 여권 사진을 업데이트하여 신원을 확인하는 것과 마찬가지로 동일한 기관에서 해당 웹 서비스를 계속 운영하고 있는지 확인하는 데 도움이 됩니다. 만료된 SSL 인증서는 클라이언트의 웹 브라우저에서 신뢰받지 못하므로 TLS 핸드셰이크를 진행할 수 없으며 보안 연결을 설정할 수 없습니다.
이 SSL 문제를 해결하려면 웹 관리자가 도메인 및 하위 도메인에 대한 SSL 인증서가 모두 최신 상태인지 확인해야 합니다.
이 오류는 클라이언트의 시계가 잘못된 경우에도 발생할 수 있습니다. 이 경우 클라이언트의 브라우저에서는 SSL 인증서가 만료되었는지 확인하지 못할 수 있습니다. 그러한 경우 클라이언트 장치에서 시계를 재설정하면 오류가 해결됩니다.
이름 불일치 오류는 SSL 인증서의 이름이 클라이언트가 입력한 URL과 일치하지 않을 때 발생합니다. 이는 사용자가 예상과 다른 최상위 도메인을 입력했거나, 해당 이름이 인증서에 없을 때 'www'를 입력했거나, 다른 방식으로 도메인 철자를 잘못 입력한 경우 발생할 수 있습니다. 웹 사이트 운영자가 인증서 레이블을 잘못 지정했거나 도메인의 공개 이름을 모두 포함하지 않은 경우에도 이름 불일치가 발생할 수 있습니다. 마지막으로, 클라이언트나 서버가 SNI 확장을 지원하지 않을 때 일반적인 이름 불일치 오류가 발생할 수 있습니다(자세한 내용은 아래 참조).
이 오류를 방지하려면 웹 사이트 관리자는 SSL 인증서에서 도메인 철자가 올바른지 확인해야 합니다. 또한 SSL 인증서의 주체 대체 이름(SAN) 섹션에는 도메인 이름의 합법적인 대체 표현이 모두 나열되어야 합니다.
서버 이름 표시(SNI)는 여러 도메인이 하나의 서버에서 호스팅되는 경우에 사용하기 위한 TLS 프로토콜의 확장입니다. 클라이언트가 연결을 시작하면 서버(IP 주소로 표시됨)에 직접 연결됩니다. 해당 서버는 여러 거주자가 거주하는 아파트 건물과 같이 여러 웹 사이트를 호스팅할 수 있습니다.
SNI는 비유를 계속하자면 주소에 아파트 번호를 넣어 서버가 어느 웹 사이트, 즉 '아파트'로 SSL 연결 요청을 보낼지 알 수 있도록 하는 확장자입니다. 그러나 서버에 대한 요청이 SNI를 사용하지 않는 경우, 서버가 연결을 시작하는 클라이언트에게 잘못된 SSL 인증서를 표시하여 일반적인 이름 불일치 오류가 발생할 수 있습니다.
이 오류를 방지하려면 웹 사이트 관리자는 SNI(및 암호화된 SNI)를 포함하여 최신 TLS 프로토콜을 지원하는 웹 호스트를 사용해야 합니다.
Cloudflare에서는 모든 고객 웹 사이트의 인증서를 자동으로 관리하고 갱신하여 웹 사이트 운영자가 이러한 오류를 피할 수 있도록 지원합니다. 조직에서 관리해야 할 하위 도메인이 수십, 수백, 수백만 개에 달하는 경우 인증서가 만료되지 않도록 하는 것은 풀타임 업무가 될 수 있습니다. 하지만 Cloudflare에서는 이 프로세스를 자동화합니다.
요금제 페이지에서 Cloudflare SSL 인증서 옵션에 대해 알아보세요.