memos/Home Server/Network/certbot.md

82 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

2025-01-06 15:25:18 +00:00
# 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` 오류 발생