HTTPS 및 NGINX로 SEO를 개선하는 방법
HTTPS 적용을 통해 웹사이트를 안전하게 보호하는 것이 Google 검색 결과 순위에 영향을 미칠 수 있다는 사실을 알고 계셨나요?
Google은 자사의 온라인 보안 블로그에서 HTTPS 적용을 검색 결과 반환 시 순위 신호로 고려한다는 발표를 했습니다.
HTTP는 인터넷 상의 통신을 기반으로 하는 Hypertext Transfer Protocol 입니다. 하지만 통신이 암호화되지 않아 보안 상 위험이 있습니다. HTTPS는 보안이 강화된 HTTP로, SSL 또는 보다 최신의 TLS 암호화 프로토콜을 사용하여 데이터 흐름을 암호화합니다.
보안에 민감한 회사들은 Dropbox과 같은 서비스에서 HTTPS를 사용하여 다양한 보안 및 개인 정보 보호 문제를 해결합니다.
목차
1. SSL/TLS의 심각한 성능 문제 발생 가능성
2. NGINX의 HTTPS 성능 향상 솔루션
2-1. HTTPS 세션 캐싱
2-2. HTTPS 세션 티켓 및 ID
2-3. OCSP 스테이플링
2-4. 사이퍼 스위트
3. SSL/TLS 사용 이점
1. SSL/TLS의 심각한 성능 문제 발생 가능성
웹사이트 보안을 강화하여 SEO 이점을 얻는 것은 매력적이지만, 많은 경우에는 그렇게 흥미롭지 않을 수 있습니다.
실제로 많은 애플리케이션은 여전히 소프트웨어 스택의 비효율적인 아키텍처에 의존하며, 다양한 성능 문제로부터 이미 고생하고 있습니다. SSL 또는 TLS를 추가하여 HTTPS 적용 시 애플리케이션이 더 느려지고 자원을 더 많이 사용할 수 있습니다.
HTTPS 를 안전하게 만드는 SSL/TLS 핸드셰이크는 성능에 중대한 영향을 미칠 수 있습니다.
핸드셰이크는 웹 브라우저와 서버 간의 통신으로, 연결이 신뢰할 수 있는지 확인하는 일련의 과정입니다. 이 과정은 CPU 집약적이며 사용자와 서버 간의 더 많은 왕복을 유발합니다.
2. NGINX의 HTTPS 성능 향상 솔루션
다행히도 현대적인 웹 서버인 NGINX와 NGINX Plus는 이러한 문제를 해결하고 기업이 애플리케이션의 성능 문제를 크게 줄이도록 도와줍니다. NGINX 및 NGINX Plus는 세션 캐싱, 세션 티켓 또는 ID, OCSP 스테이플링, 실험적인 SPDY 프로토콜 등 SSL/TLS를 통한 HTTPS 성능 영향을 완화하는 여러 가지 방법을 제공합니다.
2-1. HTTPS 세션 캐싱
ssl_session_cache
지시어를 구성에 포함하면, NGINX와 NGINX Plus는 SSL/TLS 연결을 통해 HTTPS 를 생성하는 데 사용된 세션 매개변수를 캐시합니다.
이 캐시는 shared 매개변수를 포함하여 모든 프로세스 간에 공유되므로, 연결 설정 정보가 이미 알려져 있기 때문에 후속 요청에 대한 응답 시간이 크게 개선됩니다.
캐시에 이름을 지정하고 그 크기를 설정하세요(1MB의 공유 캐시는 대략 4,000개의 세션을 수용할 수 있습니다).
ssl_session_timeout
지시어는 세션 정보가 캐시에 유지되는 시간을 제어합니다. 기본값은 5분입니다. 여러 시간 동안 유지하도록 증가시키면 (아래 예시처럼) 성능이 향상되지만 더 큰 캐시가 필요합니다.
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 4h;
2-2. HTTPS 세션 티켓 및 ID
세션 티켓은 특정 SSL/TLS 세션 정보를 HTTPS 내에 저장합니다. 클라이언트가 애플리케이션과 상호작용을 재개할 때, 세션 티켓은 재협상 없이 세션을 재개하는 데 사용됩니다. 세션 ID는 대안입니다. 세션 ID는 ssl_session_cache
지시문에 의해 생성된 캐시에 저장된 특정 세션을 매핑하는 데 MD5 해시가 사용됩니다. 두 메커니즘 모두 SSL/TLS 핸드셰이크를 생략할 수 있도록 합니다.
ssl_session_tickets on;
2-3. OCSP 스테이플링
HTTPS 성능을 개선하는 또 다른 방법은 OCSP 스테이플링을 사용하는 것입니다. 이는 SSL/TLS 핸드셰이크 시간을 줄입니다.
일반적으로 사용자가 HTTPS를 통해 애플리케이션 또는 웹 사이트에 연결하면 브라우저는 인증서 폐지 목록(CRL)을 기반으로 SSL/TLS 인증서를 확인하거나 인증서 발급 기관(CA)에서 온라인 인증서 상태 프로토콜(OCSP) 레코드를 사용합니다.
이러한 요청은 대기 시간을 늘리며 CA는 신뢰성이 떨어질 수 있습니다. NGINX 및 NGINX Plus를 사용하면 OCSP 응답을 서버에 캐시하여 비용이 많이 드는 오버헤드를 제거할 수 있습니다.
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/cert/trustchain.crt;
resolver 8.8.8.8 8.8.4.4 valid=300s;
2-4. 사이퍼 스위트
최적화된 암호 알고리즘인 사이퍼 스위트(cipher suites)를 지정하는 것은 때로 HTTPS 성능 향상에 기여한다고 합니다. 이를 위해 ssl_prefer_server_ciphers
지시어를 사용할 수 있지만, 사실 기본 설정은 대부분의 경우에 충분합니다. 이러한 설정과 권장 사항은 구식, 최신 및 미래의 암호에 대해 모두 효과적입니다. 특정 보안 및 성능 요구 사항을 충족시키기 위해서만 특정 암호를 선택하는 것이 좋습니다.
3. SSL/TLS 사용 이점
검색 엔진 최적화는 인터넷에 존재하는 많은 회사들의 초점입니다.
사실, Google은 곧 HTTPS를 더 영향력 있는 순위 요소로 만들 수도 있습니다. 어떤 웹마스터든 사용자 보안 요구를 효율적으로 충족하면서도 사용자가 좋아하는 성능을 제공하는 옵션이 있는 것은 기쁘게 생각할 일입니다.
마지막으로, SEO 이점을 얻기 위해서만 웹사이트 보안을 강화하면 안 됩니다.
하지만 Google의 이점은 사용자 경험과 안전성을 개선하면서 SEO 부스팅을 받을 수 있다는 점에서 매력적일 것입니다.
시작하려면 HTTPS를 설정하고 최적화하는 방법에 대해 더 자세히 알아보기 위해 NGINX STORE의 포스트를 둘러보세요.
아래 뉴스레터를 구독하고 NGINX의 유용한 정보들을 발 빠르게 전달 받아보세요.