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

Zzz Ccc·2023년 7월 23일
  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일

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

답글 달기