Infra/IaC

[SSL] certbot ssl 발급 : nginx forward proxy 설정까지

jykim23 2023. 11. 29. 19:38

 

환경 및 설치

환경: ubuntu 22.04, 관리자권한

apt install certbot

add-apt-repository ppa:certbot/certbot

apt install python3-certbot-nginx

 

인증서 발급

certbot certonly --nginx -d mysite.site -d www.mysite.site -d kubeflow.mysite.site

다수 도메인 사용 가능

 

nginx 설정

nginx 설정 참고 : http://nginx.org/en/docs/http/ngx_http_core_module.html

server_name : 모든 $host 는 k8s에서 운영중이므로 명시하지 않음

resolver: 'no resolver defined to resolve' 등 오류 발생. 

proxy_pass : k8s nginx ingress 30080

proxy_set_header : 옵션

 

server {
    listen 80;

    # HTTP에서 HTTPS로 리다이렉션
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;

    ssl_certificate /etc/letsencrypt/live/mysite.site/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mysite.site/privkey.pem;


    location / {
        resolver 168.126.63.1;
        proxy_pass http://$host:30080$request_uri;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

 

 

스케줄 등록

crontab -e

0 0 1 * * certbot renew # 매월 1일 0시 0분 갱신