nginx 환경에서 http를 https 리다이렉트 해주자

Zzz Ccc·2023년 7월 23일
0
  1. 시작하기 앞서 이전 상황...

막상 자려고 하니 개선사항이 아른거린다.
   https를 정상적으로 발급받고, 남아있는 http포트를 nginx로
 리다이렉트만 시켜주면 된다.
1. 자신의 nginx 설정파일, example.conf를 찾자.
2. 기존에 있던 server { } 블록을 80포트와 443로 나눠주어야한다.
3. nginx 재기동....

example.conf 코드

	server {
    listen       80 443 ssl https;
    server_name  example.com
    root         html;

    ssl                  on;
    ssl_certificate      /etc/pki/tls/certs/example.com.chained.crt;
    ssl_certificate_key  /etc/pki/tls/private/example.com.key;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers  ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_prefer_server_ciphers   on;
    location ~ /\.ht {
         deny  all;
    }
}
※ nginx 초기 설정 이후 건드린 적이 없으면, 위와 같이 server block이 따로 나뉘어져 있지않는 것 같다. 나는 Certbot으로 SSL을 발급 받았고, Certbot이 자동으로 Nginx 설정 파일에 443 포트를 열어준 것 같다.
	server {
	listen 80;
	server_name example.com;
	root html;
	
	location / {
        return 301 https://example.com$request_uri;
    }
}

server {
	listen 		 443 ssl https;
    server_name  example.com
    root         html;

    ssl                  on;
    ssl_certificate      /etc/pki/tls/certs/example.com.chained.crt;
    ssl_certificate_key  /etc/pki/tls/private/example.com.key;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers  ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_prefer_server_ciphers   on;
    location ~ /\.ht {
         deny  all;
    }
}
* 이후 systemctl reload nginx 로 설정 파일을 새로 적용해주니, 정상적으로 http->https 리다이렉션을 한다.

출처 링크

profile
백수 lv1 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

이런 유용한 정보를 나눠주셔서 감사합니다.

답글 달기