프로젝트 마감일 직전, 나에게 주어진 목표는 서버를 배포하고 도메인을 구매하여 https 인증서를 발급받는 것이었다.
Ubuntu를 서버로 사용할 것이기 때문에 AMI와 인스턴스 유형은 프리티어에 해당하는 종류로 선택해주었다.
SSH로 접속할 것이기 때문에 새로운 키 페어(.pem)를 생성해주고 putty를 통해 .ppk 형식의 키를 새롭게 저장하였다.
-> 처음부터 ppk 형식으로 발급받아도 될 법했는데..ㅎ
Putty를 통해 서버에 연결해줄 수 있지만 이번에는 Mobaxterm을 사용해보았다.
-> GUI를 지원해주니 폴더 내부 구조를 한 번에 볼 수 있다는 게 장점인 것 같다.
미리 저장해둔 깃허브 레퍼지토리에서 소스 코드와 Ubuntu용 Node.js를 다운받고, .env 파일을 설정해준다.
서버를 실행시키고, "퍼플릭 IPv4 주소:포트번호"로 요청을 보내본다.
sudo apt-get update
sudo apt-get install nginx
//nginx 구동 테스트
sudo service nginx start
sudo service nginx stop
cd /etc/nginx/sites-enabled
// 기존 defaul 파일 삭제
sudo rm default
// 새로운 default 파일 작성
sudo vi default
//default
server {
listen 80;
server_name api.plannerbot.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
- http 기본 포트인 80포트로 요청이 들어오면 http://127.0.0.1:8080으로 연결해준다.
- 8080은 자신이 설정한 서버 포트 번호다
- 만약 server_name을 퍼블릭 Ipv4로 설정을 해두면, 더이상 IP뒤에 포트번호를 붙이지 않고 접속할 수 있다.
//certbot 설치
sudo add-apt-repository ppa:certbot/certbot
sudo apt install certbot python3-certbot-nginx
//도메인 SSL인증서 요청
sudo certbot --nginx
Congratulations! Your certificate,,
이런 메세지가 등장해야하지만 나는 unauthorized
Error가 등장하였다.00시까지 프로젝트를 마감하고 제출해야하지만 현재 시간은 23시였고 나에게는 1시간밖에 남지 않았다,,
하지만 아무리 cerbot Unauthorized
에 대한 에러를 구글링하여도 .well-known/acme-challenge/
에 파일을 만들어, nginx 설정을 바꾸거나 어려운 조작법들이 설명되어 있어 마음은 더 급해졌다.
다시 마음을 다잡고 내가 거쳐온 과정을 하나씩 천천히 복기해본 결과, 정말 바보같은 실수를 했다는 것을 깨달았다.
큰 힘에는 큰 책임이 따르는 법,,,
도메인 사용에는 요금이 따라간다는 사실,,
급한 마음에 도메인을 사지도 않고, 존재하지도 않는 도메인으로 호스팅 영역을 생성하고 있었던 것이다.
다시 AWS Route 53으로 가서 원하는 도메인 이름을 적고 사용가능한 도메인 이름 중 가장 저렴한 것을 구매하였다.
-> 원하는 이름은 다 가격이 비싸서 planbot.click으로 생성(
-> .click은 1년에 3달러 / .com은 1년에 13달러
새롭게 생성한 planbot.click의 호스팅 영역을 추가해주었다.
->api.planbot.click에 Ipv4 주소를 넣으니 "api.planbot.click:포트번호" 요청 성공
Nginx proxy server 설정에서 server_pass 값에 구매한 도메인 이름 삽입
존재하는 도메인으로 Certbot 인증을 받으니 성공적으로 인증서를 발급받을 수 있었다.
추가로 프론트 페이지랑 동일한 도메인을 사용하고 싶어서, vercel에서 제공하는 레코드 값들을 www.planbot.click 레코드에 값들로 추가하여 연결하였다.
https://velog.io/@jeff0720/2018-11-18-2111-%EC%9E%91%EC%84%B1%EB%90%A8-iojomvsf0n
즐겁게 읽었습니다. 유용한 정보 감사합니다.