Linux/CentOS

[CentOS] Nginx서버 http -> https리다이렉트

`작은거인` 2020. 3. 16. 14:41

http는 웹 서버와 브라우저간에 통신이 이루어지는 프로토콜입니다. SSL (Secure Sockets Layer)과 같은 프로토콜을 사용하여 웹 서버와 브라우저 간의 데이터를 암호화합니다. 따라서 모든 http 데이터를 https 프로토콜로 리다이렉션 하는 것이 좋습니다.

 

 

https 리다이렉트 하는 방법

전체조건

  1. Nginx에서 https를 설정
    ㅁ 개인키 CSR키를 생성해야 합니다.
  2. 키를 생성한 후 인증 기관에서 SSL 인증서를 얻어야 합니다.
  3. SSL 인증서와 키를 추가하여 Nginx 서버 블록을 구성합니다.
  4. Nginx 변경 사항을 저장하고 reload 합니다.
# Redirecting all HTTP traffic to HTTPS

server {
  listen 80 default_server;
  listen [::]:80 default_server;
  return 301 https://$host$request_uri;
}

 

서버의 모든 호스트 이름을 리다이렉션 하는 매우 일반적인 구성입니다. 코드를 한 줄씩 살펴봅시다.

  1. server 
    ㅁ 코드가 작성되는 블록의 이름
  2. listen 80 default_server;
    ㅁ 포트 번호 80은 http 포트이고, default_server는 서버 호스트 이름입니다.
    ㅁ IPv4 HTTP 패킷을 리다이렉션 합니다. 
  3. listen [::]:80 default_server; 
    ㅁ 위와 동일하지만 모든 IPv6 HTTP 트래픽에 대해 작동합니다.
  4. return 301 https://$host$request_uri;
    ㅁ Code 301은 트래픽을 리다이렉션 하는 데 사용됩니다.

여기서 "test.com"및 "www.test.com"의 모든 HTTP 트래픽은 HTTPS로 리디렉션 됩니다.

# Here is an example for your reference.

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name test.com www.test.com;
    return 301 https://$server_name$request_uri;
}