개인 서버에 도메인을 구매한 뒤 블로그를 한번 정리하고 있습니다. 각 포스트에 들어갈 이미지데이터를 github에 그대로 올리는건 무리가 있을듯하여 이미지를 서버에 올려놓고 가볍게 불러와 쓸 수 있는 형태를좀 찾아보게 되었고, Nginx가 적당해 보였습니다. 다만 git blog는 https로 서비스가되고, nginx의 기본 서비스는 http로 동작하여 이미지가 제대로 호출되지 않는 문제가 있었습니다. 따라서 이번 포스트에서는 https로 Nginx를 구성하게된 과정을 정리해서 올려보려 합니다. 구성한 Nginx는 https://000namc.xyz/nginx/ 로 접근 가능합니다.
Nginx
기본적으로 도메인을 확보한 후, 보통 nginx를 이용하여 웹 서버를 구성하게 됩니다. 기본 값으로는 http 프로토콜을 이용하여 구성 하는데, 필요에 따라 도메인에 대해 SSL인증서를 발급받고 https 프로토콜을 이용하게 할 수 있습니다.
보통 위의 과정으로 http 포트로 SSL 인증서를 받을 수 있는데, 저의경우에는 서버의 80번 포트가 AP Router에서 사용중인 서비스포트여서 사용할 수 없다고 하여 다른 방법을 찾아야만 했습니다. 이러한 문제를 해결하는 몇가지 방법이 있는데, 그 중 https 포트를 이용하여 인증서를 받을 수 있는 방법이 있다고 하여 적용하였습니다 https://letsencrypt.org/docs/challenge-types/#dns-01-challenge.
이렇게 입력한 후, 나온 설명대로 DNS 서비스에서 몇가지 작업을 하고 돌아오면, /etc/letsencrypt 경로에 SSL 인증 정보가 성공적으로 다운받아집니다.
Nginx 에서 SSL인증서 사용하기
위에서 다운받은 인증서 정보를 바라보게, 그리고 https 포트만 사용하도록 nginx config를 작성하면 끝입니다. 아래와같이 구성하였습니다.
자동화
certbot을 이용하여 무료 인증서를 사용하고 있는데, 90일마다 갱신이 필요하다고 합니다. 따라서 완성된 설계와 cronjob을 dockerfile로 말아서 언제든지 쉽게 다시 실행시킬 수 있도록 구성하였습니다.