Certbot은 다양한 플러그인을 통해서 SSL 인증서를 얻는 다양한 방법을 제공한다. Nginx의 경우에는 필요할 때마다 Nginx를 재구성하고 구성을 reload하는 방식을 사용한다.
SSL 인증서를 받기 위해 sudo certbot --nginx -d xx0hn.site -d www.xx0hn.site 명령을 실행한다. 도메인을 더 추가하고 싶다면 -d 도메인이름을 뒤에 붙이면 된다. 처음 인증서를 설치하면 다음과 같이 이메일 등록, 약관 동의를 진행하게 된다. 그리고 기존 http 연결을 어떻게 설정할 것인지 선택해야 되는데 별 생각없이 1로 설정을 했다. (1을 입력한다면 HTTP 연결을 HTTPS로 리다이렉트 하지 않고, 2를 입력한다면 HTTP 연결을 HTTPS로 리다이렉트 한다.) 설정까지 끝나면 구성이 업데이트되고 Nginx가 재시작된다.
http 연결 설정을 아무것도 모른 상태에서 진행해서 sudo certbot --nginx -d xx0hn.site -d www.xx0hn.site 명령을 다시 실행시켰다.
인증서 다운로드 및 설치가 완료되었다는 내용이 나온다. 다음 터미널 화면의 상단을 보면 You should test your configuration at: 이라는 문구가 보인다. 아래 url로 접속해본다.
SSL Labs Server Test로 이동하게 되고 도메인을 test한다. Assessment failed:Unable to connect to the server 라는 오류 메세지가 뜬다. 오류가 발생한 이유는 AWS EC2 인스턴스의 보안 그룹에 SSL이 사용되는 https(443)포트를 추가해주지 않았기 때문이다.
AWS로 들어가 실행중인 EC2 인스턴스의 보안 설정에서 다음과 같이 인바운드 규칙을 추가해준다.
인바운드 규칙을 추가해줬으니 sudo certbot --nginx 명령을 다시 실행해준다.
SSL Labs Server Test에서 도메인을 입력해서 다시 test를 진행한다. Submit을 누르면 이전의 오류 화면이 다시 뜨는데 Clear cache를 눌러 test를 다시 진행하도록 한다.
test가 끝나면 다음과 같이 등급을 확인할 수 있다.