# 1. 설치 ```shell sudo snap install --classic certbot ``` # 2. Certbot 사용 설정 ```shell sudo ln -s /snap/bin/certbot /usr/bin/certbot ``` # 3. nginx에 설치 ## 3.1. nginx 설정 ```nginx server { listen 80; server_name gitea.tuska298.dev; } ``` ## 3.2. 인증서 설치 ```shell sudo certbot --nginx ``` ## 3.3. 인증서 설치 확인 ```nginx hl:5-6,25-27,"managed by Certbot" server { listen 80; server_name gitea.tuska298.dev; if ($host = gitea.tuska298.dev) { return 301 https://$host$request_uri; } # managed by Certbot return 404; # managed by Certbot } server { server_name gitea.tuska298.dev; location / { proxy_set_header Connection $http_connection; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:3000; } location /.well-known/acme-challenge/ { root /var/www/certbot; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/gitea.tuska298.dev/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/gitea.tuska298.dev/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } ``` # 4. Cloudflare 사용 시 ERR_TOO_MANY_REDIRECTS 에러 ![[../resources/certbot-01.png]] 클라우드플레어 사용자 지정 SSL/TLS 설정을 전체 또는 전체보다 엄격한 것으로 설정해야 브라우저에서 `ERR_TOO_MANY_REDIRECTS` 와 같은 에러를 해결할 수 있음 > [!info] 원인 > 1. 클라우드플레어는 서버와 클라이언트 사이에 껴서 중개함 > 2. 사용자 지정 SSL/TLS 설정이 전체 미만일 경우 클라이언트의 http 요청은 http로 고정 > 3. 클라우드플레어는 서버로 http 요청 프록시 > 4. 서버는 http 요청을 받아 https로 리다이렉트 응답 전송 > 5. 3~4번을 무한히 반복 > 6. 일정 횟수 이상 반복 시 `ERR_TOO_MANY_REDIRECTS` 오류 발생