memos/Home Server/Network/certbot.md
2025-01-07 00:25:18 +09:00

2.3 KiB

1. 설치

sudo snap install --classic certbot

2. Certbot 사용 설정

sudo ln -s /snap/bin/certbot /usr/bin/certbot

3. nginx에 설치

3.1. nginx 설정

server {
    listen 80;
    server_name gitea.tuska298.dev;
}

3.2. 인증서 설치

sudo certbot --nginx

3.3. 인증서 설치 확인

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 오류 발생