통합검색

Linux

nginx에서 http->https 리디렉션 설정된 경우 let's encrypt 인증서 갱신 안될때

  • 2024.10.08 15:01:14





nginx 를 사용할 때 특정 조건에서 let's encrypt 인증서가 갱신이 안되는 경우가 있다.
나의 경우 http 접속하는 경우 https로 리디렉션 함과 동시에, proxy 를 통해 목적지 서버로 트래픽을 전달하는데, 이 과정에서 webroot를 찾지 못해 갱신이 안되는 문제였다.
따라서, 아래와 같이 certbot에서 웹서버를 접근하는 경우 https로 리디렉션 되지 않도록 예외 처리 하였다.


[!]기존 문제가 된 구문[/!]
 
server {
        listen 80;
        server_name note.chanyeongpark.com;
        index index.html;
        root /서버경로/;
        return 301 https://note.chanyeongpark.com$request_uri; // 문제가 되는 구문
}

301로 https로 리디렉션 되고 있는 구문을 아래와 같이 수정하였다.


[!]수정된 구문[/!]
 
아래와 같이 certbot에서 접근하는 경우 예외처리하여 https로 리디렉션 되지 않도록 처리하였고
정상 갱신 되는 것을 확인 하였다.
 
server {
        listen 80;
        server_name note.chanyeongpark.com;
        index index.html;

        location /.well-known/acme-challenge/ {
                root /서버경로/;
        }

        location / {
                return 301 https://note.chanyeongpark.com$request_uri;
        }

}