Skip to content

SSL 인증서 발급 & HTTPS 세팅

Jaemin Choi edited this page Jul 5, 2021 · 4 revisions

OpenSSL을 이용한 인증서 발급 🔐

OpenSSL 설치

OpenSSL이 설치되어있지 않다면 다음 명령어로 설치합니다.

sudo apt install -y openssl

다음 명령어로 설치가 정상적으로 이루어졌는지 확인합니다.

openssl version
# OpenSSL 1.1.1  11 Sep 2018

SSL 인증서 발급

다음 명령어로 인증서를 발급받습니다.
(npc.skku.edu 부분에는 적절한 hostname을 입력하면 됩니다)

openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 1000 \
    -subj "/C=KR/ST=Gyeonggi-do/L=Suwon-si/O=Sungkyunkwan University/OU=SKKU NPC/CN=npc.skku.edu" -nodes

도커 컨테이너에 인증서 적용 🐳

oj 서버는 다음 경로에 있는 인증서를 인식합니다: /home/dotoleeoak/plz/data/backend/ssl
해당 경로로 이동하면 server.crtserver.key 두 파일을 확인할 수 있습니다.
앞서 발급받은 인증서를 다음 명령어를 통해 이 경로로 복사합니다.

sudo cp server.crt /home/dotoleeoak/plz/data/backend/ssl/server.crt
sudo cp server.key /home/dotoleeoak/plz/data/backend/ssl/server.key

변경된 인증서 내용을 도커 컨테이너에 적용합니다.

docker exec -it coding-platform sh -c "cd /app/deploy; supervisorctl restart nginx"

HTTP -> HTTPS redirection

강제로 HTTPS로 접속시키려면, docker-compose.yml 파일에서 FORCE_HTTPS=1의 주석을 해제합니다. (# 제거)
이후, 다음 명령어로 도커 컨테이너에 해당 내용을 적용합니다.

docker-compose up -d

인증서 갱신 ⌛

인증서는 유효 기간에 따라 일정 기간마다 갱신해야 합니다.
앞서 'SSL 인증서 발급' 절차부터 반복하여 갱신할 수 있습니다.
(shell script 이용한 갱신 구현 예정)