Linux/CentOS
[CentOS] Nginx서버 http -> https리다이렉트
`작은거인`
2020. 3. 16. 14:41
http는 웹 서버와 브라우저간에 통신이 이루어지는 프로토콜입니다. SSL (Secure Sockets Layer)과 같은 프로토콜을 사용하여 웹 서버와 브라우저 간의 데이터를 암호화합니다. 따라서 모든 http 데이터를 https 프로토콜로 리다이렉션 하는 것이 좋습니다.
https 리다이렉트 하는 방법
전체조건
- Nginx에서 https를 설정
ㅁ 개인키 CSR키를 생성해야 합니다. - 키를 생성한 후 인증 기관에서 SSL 인증서를 얻어야 합니다.
- SSL 인증서와 키를 추가하여 Nginx 서버 블록을 구성합니다.
- Nginx 변경 사항을 저장하고 reload 합니다.
# Redirecting all HTTP traffic to HTTPS
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}
서버의 모든 호스트 이름을 리다이렉션 하는 매우 일반적인 구성입니다. 코드를 한 줄씩 살펴봅시다.
- server
ㅁ 코드가 작성되는 블록의 이름 - listen 80 default_server;
ㅁ 포트 번호 80은 http 포트이고, default_server는 서버 호스트 이름입니다.
ㅁ IPv4 HTTP 패킷을 리다이렉션 합니다. - listen [::]:80 default_server;
ㅁ 위와 동일하지만 모든 IPv6 HTTP 트래픽에 대해 작동합니다. - 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;
}