CDN 서버의 오류 (KATEX서버)

최호연·2024년 10월 11일
0
post-thumbnail

2024.03 ~ 2024.08 인턴생활

문제 발생

  • KATEX 문법을 지원해주는 KATEX서버 즉 외부의 CDN서버에서 제공되는 JS ,CSS 파일을 로드해오고 있다.
  • 갑자기 잘 오던 JS와 CSS 파일들이 로드가 되지 않고 오류가 나는 현상 발생

발생 이유

  • CDN 서버 즉, KATEX 서버에서 HTTPS (TLS) 로 통신을 해서 JS,CSS 파일을 받아오는 과정에서 CA의 인증서를 바탕으로 파일을 로드하게 되는데, 이 인증서가 만료가 되어 브라우저 측에서 유효기간이 지난 인증서로 요청을 하니, 해당 사이트의 자원을 차단

인증서란
브라우저는 HTTPS 프로토콜을 통해 웹사이트로 요청을 보낼 때, 해당 사이트로부터 받은 SSL/TLS 인증서를 사용하여 통신을 암호화하고 보안을 유지합니다. 이 과정에서 브라우저는 서버로부터 받은 인증서의 유효성을 확인합니다.

인증서의 유효성 확인은 대개 다음과 같은 과정을 거칩니다:
1. 인증서의 유효성 검사: 브라우저는 서버로부터 받은 인증서의 유효성을 확인합니다. 이는 인증서의 발급 기관(CA)의 신뢰도를 확인하고, 인증서의 유효 기간이 만료되지 않았는지를 확인하는 과정을 포함합니다.
2. 인증서의 발급 기관 확인: 브라우저는 인증서에 기록된 발급 기관(CA)의 신뢰도를 확인합니다. 대부분의 브라우저는 신뢰할 수 있는 CA 목록을 내장하고 있어서 이 목록에 있는 CA가 발급한 인증서만을 신뢰합니다.

  1. 인증서의 유효 기간 확인: 인증서는 유효 기간이 지나면 더 이상 신뢰할 수 없습니다. 따라서 브라우저는 인증서의 유효 기간을 확인하고, 만료된 인증서로 통신을 시도하는 경우 사용자에게 경고를 표시하거나 접속을 차단합니다.

따라서 CDN 서버로부터 HTTPS를 통해 자원을 요청할 때, 브라우저는 해당 서버로부터 받은 SSL/TLS 인증서의 유효성을 확인하고, 만료된 인증서인 경우 자원 요청을 차단하게 됩니다. 이것이 HTTPS 프로토콜을 통한 보안 통신의 기본 원리입니다.
CDN 서버로부터 인증서를 받는 것이 아니라, 웹사이트의 클라이언트(브라우저)가 CDN 서버로부터 웹페이지의 자원을 받아오는 과정에서 CDN 서버에 있는 파일들을 요청할 때, CDN 서버로부터 받은 응답에는 해당 자원이 호스팅된 도메인의 SSL/TLS 인증서가 함께 포함됩니다. 이 인증서를 브라우저가 사용하여 통신을 암호화하고 보안을 유지하는 것입니다.

일반적으로 CDN 서버로부터 받은 응답은 네트워크 탭에서 확인할 수 있습니다. 이 응답에는 자원 파일들과 함께 CDN 서버로부터 받은 인증서 정보도 포함됩니다. 보통은 다음과 같은 순서로 이루어집니다.
1. DNS 조회: 브라우저는 해당 자원을 호스팅하는 CDN 서버의 IP 주소를 DNS 조회를 통해 확인합니다.
2. SSL/TLS 연결: 브라우저는 CDN 서버에 HTTPS 연결을 시도하고, CDN 서버로부터 SSL/TLS 인증서를 받습니다.
3. 자원 요청: 브라우저는 CDN 서버에 자원을 요청하고, CDN 서버는 요청에 대한 응답을 반환합니다. 이 응답에는 요청한 자원과 함께 CDN 서버의 SSL/TLS 인증서 정보도 포함됩니다.

  1. 통신: 이후에는 요청한 자원을 포함한 응답이 브라우저에 표시됩니다.

이 과정에서 CDN 서버로부터 받은 인증서 정보는 네트워크 탭에서 확인할 수 있으며, 브라우저는 해당 인증서를 사용하여 CDN 서버와의 통신을 보안하게 유지합니다.

  • 즉, 우리 서비스에 KATEX 관련 파일들이 넘어오지 않아, 관련된 문제들이 모두 깨지게 됨.

SSL 인증서의 유효 기간이 만료되는 것은 웹사이트 운영자에게 중요한 문제이며, 이를 미리 예방하고 처리하는 것이 중요. 만료된 SSL 인증서로 인한 문제를 방지하기 위해서는 SSL 인증서를 정기적으로 갱신하고, 최신 인증서로 교체하는 것이 좋다.

해결법

  1. 인증서 갱신: 해당 CDN 제공 업체가 인증서를 갱신하여 HTTPS 연결을 복원할 수 있습니다. 업체의 고객 지원팀 또는 문서를 통해 관련 정보를 확인할 수 있습니다.

  2. HTTP 연결 사용: CDN의 자원을 HTTP 연결을 통해 불러오는 방법이 있습니다. 하지만 이 방법은 보안상의 문제가 있을 수 있으므로 권장되지 않습니다.

  3. 로컬로 자원을 다운로드: CDN에서 사용하던 자원을 로컬로 다운로드하여 사이트에 포함하는 방법이 있습니다. 이 방법은 CDN에 의존하지 않으므로 해당 문제를 우회할 수 있습니다. 하지만 이 경우 자원의 최신 버전을 유지하기 위해서는 주기적인 업데이트가 필요합니다.

결론

-> CDN 서버가 고쳐질 때까지 기다리면 된다!

profile
하윙

0개의 댓글