[certbot] 도메인 변경하면서 겪은 삽질
certbot 은 nginx 와 맞물려 동작된다.
sudo certbot --nginx -d 명령어를 통해 인증서를 생성/갱신할 경우 nginx의 sites-available 폴더 안에 있는 설정파일들을 자동으로 수정해 준다.
이때 분기가 발생한다.
- sites-available 안에 해당 도메인 설정 파일이 존재할 경우
- 해당 도메인 파일에 ssl 설정을 추가해준다. - sites-available 안에 해당 도메인 파일이 없을 경우
- default 파일에 추가해 준다.
2번으로 발생할 경우 어느 ip 의 서버로 접근하는지 내용이 없기 때문에 url로 접속하면 아파치 화면이 나오게 된다.
그러므로 1번 방법으로 일반 도메인 설정 파일을 만든 뒤 certbot 을 통해 인증서를 생성하도록 하자.
만약 1번에서 https 로 된 설정파일을 해놨을 경우 인증서를 찾을 수 없다는 에러가 발생해서 꼬인 상황처럶 된다.
server {
server_name 도메인
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_pass 서버아이피:포트;
}
listen 80;
}
sites-available 순정 파일 샘플
그럴땐 위 내용을 복사해서 도메인 설정 후 certbot 을 통해 인증서를 생성하자.
요약
- 인증서에 꼬일거 같은 도메인이 있다면 sudo certbot delete 를 통해 미리 삭제해 둔다.
- sites-available 폴더 안에 있는 파일에 추가할 경우 ssl 설정이 없는 순정 내용으로 먼저 만든다.
- 도메인 설정 파일을 만든 뒤엔 sudo certbot --nginx -d 를 통해 인증서를 생성한다.
- 항상 sudo nginx -t 로 문제가 없는지 확인한다.
- nginx stop 후 재가동 시 에러가 발생할 경우 재부팅을 한다.