NGINX SSL 설치

요즘 같은 험한 세상에서는 최소한 HTTPS를 이용하지 않고서는 서비스를 제공할 수 없다. 워드프레스는 단독 운영일 경우 Let’s Encrypt 를 이용해서 손쉽게 인증서를 발급받고, 갱신할 수 있다. 그렇지 않은 경우 인증서를 직접 설치해 주어야 한다.

오늘 실컷 삽질을 한 결과 신속한 업무 진행을 위하여 블로그는 분리 운영을 하는 것이 낳겠다는 생각이 들었다. 어쨋든 인증서를 설치하는 과정은 대략 다음과 같다.

업무를 위한 학회에서 이용하고 있는 Sectigo 회사의 DV 인증서를 후이즈에서 신청하였다. 신청할 때 CSR 정보를 입력하고 비밀키인 key를 입력한다. 이것을 잘 기록해 두어야 한다. DV 인증서는 도메인 담당자의 승인이 필요하기 때문에 신청 시간과 발급 시간의 시간 차이가 좀 있다. 어딘가에 기록을 해두지 않으면 나중에 인증서 파일이 왔을 때 키가 기억이 나지 않아 재발급을 해야하는 사태가 생길 수도 있다.

회사 와일드카드용 인증서를 이용할 수 없기 때문에, DV 인증서를 신청하였는데 발급 과정에 도메인 담당자의 승인이 필요하다. 승인 후 하루 정도 지나면 인증서 파일을 이메일로 받을 수 있다.

NGINX의 경우 인증서 파일과 key 파일이 필요하다. key 파일은 인증서를 신청하는 과정에서 생성된 그 key 파일이다. 그리고 인증서 파일은 이메일로 받은 인증서 파일을 이용해서 직접 만들어 주어야 한다. 3개의 파일을 이용해서 만들어야 하며, 나는 key.pem으로 만들었다.

$ cat domain_cert.pem ChainRA.crt RootCA.crt > key.pem

이 파일은 그냥 이용할 수가 없는데, cat로 파일을 합치는 과정에서 분리가 잘 안되는 부분이 있기 때문이다. 인터넷에서도 이와 같은 사례가 꽤 있는 것을 볼 수 있는데, 아직까지 해결이 안된 것을 보면 먼가 근원적인 문제가 있는 것 같다. 🙂 2군데 정도 줄바꿈이 빠져 있는 부분을 수정해 주면 된다.

nginx.conf 파일에서 HTTPS 인증과 관련된 부분을 수정한 다음 nginx -s reload 로 다시 설정 파일을 불러오거나 재시작하면 된다. 서비스 상태 변경하는 과정에서 key 파일을 만들때 입력한 그 key를 입력해 주어야 한다.