[certbot] 도메인 변경하면서 겪은 삽질

certbot 은 nginx 와 맞물려 동작된다.

sudo certbot --nginx -d 명령어를 통해 인증서를 생성/갱신할 경우 nginx의 sites-available 폴더 안에 있는 설정파일들을 자동으로 수정해 준다.

이때 분기가 발생한다.

  1. sites-available 안에 해당 도메인 설정 파일이 존재할 경우
    - 해당 도메인 파일에 ssl 설정을 추가해준다.
  2. 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 후 재가동 시 에러가 발생할 경우 재부팅을 한다.

Subscribe to X세대 신입사원

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe
774-86-01972 cinnabar.3d@gmail.com