-
나만의 온라인저지 사이트 만들기 - 3개발일지/개발일지 2021. 7. 3. 00:01
이번 포스팅에서는 가비아를 통한 도메인네임 등록과 ssl 인증서 발급하는 방법에 대해 포스팅 하겠습니다.
먼저 가비아 : https://www.gabia.com에 접속하여 회원가입 및 로그인을 한 뒤, 원하는 도메인을 구입해줍니다. 만약 *.shop 도메인인이 주로 저렴하니 추천드립니다.
도메인을 구입하셨다면 마이페이지->DNS관리툴로 들어가서 방금 구입한 도메인네임 옆 설정을 눌려줍니다. 그다음 레코드수정을 누르면 아래와 같이 나올텐데, 아래와 같이 타입은 A, 호스트는 www, 값은 자신의 ip주소를 입력해줍시다. TTL은 원하시는 값을 택하시면 됩니다.
그럼 도메인네임 등록이 끝났습니다! 구입한 도메인을 브라우저로 접속해보면 배포하고있는 Onlinejudge로 접속이 될것입니다.
그런데 OnlineJudge로 배포를 하고 https로 접속을 해보면 아래와 같이 경고메시지와 유효하지 않은 인증서라 나올것입니다. 인증서가 있기는하지만 발급기관을 확인해보면 Beijing OlineJudge로 믿을만한 제3자가 아닌 자체 인증서를 사용한것을 확인할 수 있습니다. 그래서 새로 인증서를 발급받아야하는데 이 포스팅에서는 certbot을 통해 인증서를 발급받도록 하겠습니다.
먼저 아래 커맨드를 통해 certbot을 설치해줍니다.
$ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install python-certbot-nginx
그 다음 인증서를 발급받을겁니다. 'YOUR_DOMAIN_NAME_HERE' 에는 도메인네임 주소를 작성하면 됩니다.
sudo certbot certonly --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory -d 'YOUR_DOMAIN_NAME_HERE'
그럼 위 이미지처럼 hash값 같은 value를 주는데 이것을 가비아 DNS관리에서 타입 txt로 dns를 등록해줍니다.
그다음 다음 과정을 진행하면 성공했다는 메시지와 함께 인증서가 발급됩니다.
/etc/letsencrypt/live/YOUR_DOMAIN_NAME/fullchain.pem;
/etc/letsencrypt/live/YOUR_DOMAIN_NAME/privkey.pem;인증서 같은경우 위 경로에 저장됩니다. sudo 커맨드로 강제로 OnlineJudgeDeploy/data/backend/ssl 경로로 옮겨줍니다. OnlineJudgeDeploy/data/backend/ssl 경로에 server.crt와 server.key가 존재하는데 삭제하도록 합니다. 그리고 fullchain.pem와 privkey.pem를 아래 커맨드로 crt, key로 convert 해줍니다.
openssl x509 -outform der -in fullchain.pem -out server.crt
openssl rsa -outform der -in privkey.pem -out server.key
이제 https로 접속해도 더 이상 경고메시지가 뜨지않습니다! OnlineJudge는 http2까지 구현을 한 프로젝트이므로 https 인증서 등록을 하는것을 추천드립니다.
'개발일지 > 개발일지' 카테고리의 다른 글
[Django] Redis로 API rate limit 해결하기 (0) 2021.07.04 나만의 온라인저지 사이트 만들기 - 2 (2) 2021.06.28 AWS ec2 프리티어 t2.micro 인스턴스 다운문제 해결 (0) 2021.06.25 나만의 온라인저지 사이트 만들기 - 1 (1) 2021.06.25