이번에 구매하려는 도메인을 기획팀이 GoDaddy에서 구매를 했다.
지금까지 가비아 도메인만 사용해봤는데
GoDaddy는 처음이라 문서화를 한다.
우선 Route53에서 호스팅 영역을 만들어준다.
그리고 GoDaddy에서 도메인 제품에 들어간 뒤 DNS관리를 눌러준다.
네임서버에 들어가면 두개의 네임서버가 있다.
네임서버 편집을 누르면 '내 고유 네임버서를 사용하기'가 있는데
이를 누르고, AWS Route53에서 만들어놓은 NS의 값/트래픽 라우팅 대상을 하나씩 입력해준다.
참고로 그대로 복사하면 마지막에 .가 붙어있는데 이걸 지워줘야 한다.
그러고 나서 Route53으로 돌아와서 레코드 생성을 누른뒤 A레코드를 만들어준다.
레코드 값에 EC2 탄력적 IP를 넣어주면 된다.
www.로 입력했을 때도 연결해주려면
CNAME타입의 레코드를 만들고, 도메인 네임에 www를 붙인 뒤 값에는 Ipv4 DNS값을 넣어준다.
sudo apt update
sudo apt-get install letsencrypt -y
sudo service nginx stop
certbot certonly --standalone -d plaything.team -d www.plaything.team
sudo service nginx restart
이렇게 해준다음에
NGINX 공식문서를 참고하자.
우선,
sites-available파일에 들어가서
이 파일을 만든다음
#1
server {
listen 80;
server_name 도메인
return 301 도메인
#2
server {
listen 443 ssl http2; //ssl 파라미터는 꼭 넣어줘야 한다.
server_name 도메인
ssl_certificate /etc/letsencrypt/live/{도메인 주소}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{도메인 주소}/privkey.pem;
#3
location / {
proxy_pass http://localhost:7002
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
이런식으로 해주면 된다.
The directives ssl_protocols and ssl_ciphers can be used to limit connections to include only the strong versions and ciphers of SSL/TLS. By default nginx uses “ssl_protocols TLSv1.2 TLSv1.3” and “ssl_ciphers HIGH:!aNULL:!MD5”, so configuring them explicitly is generally not needed. Note that default values of these directives were changed several times.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
이 설정은 SSL과 TLS의 보안이 더 강한 버전만을 허용하는 설정인데, 디폴트 설정이라 넣어주진 않아도 된다.
지금 페이지가 있는건 아니지만 스웨거 페이지를 열어도 계속 404만 뜬다.
우선, 도메인 연결까지는 시간이 걸릴 수 있으니 제대로 연결된 게 맞는지 확인해봤다.
nslookup 도메인 이름
을 하면 도메인 이름과 ip가 뜨는데 제대로 연결이 됐다.
아마도 NGINX문제인 것으로 보인다.
이 문제는 sites-available에 있는 default 설정파일을 nginx conf에서 include해서 참조하고 있기 때문에 발생한 것으로 보인다.
이 파일을 지우고 도메인에 대한 설정파일을 만들어서 include하게 했더니 해결됐다.
이렇게 해주면 된다. 처음에 301 리다이렉트를 했는데 301은 get메서드로 변경이 된다는 문제가 있어서 307로 변경했다.
curl -v http://plaything.team/api/v1/auth/login
이렇게 요청을 보내면 아래처럼 리다이렉트 됐다는 메시지가 뜬다.
sudo crontab -e //크론 탭을 열고
0 0 * * * /usr/bin/certbot renew --quiet && /bin/systemctl reload nginx //를 입력해준다
sudo crontab -l //크론 작업 확인
sudo tail -f /var/log/letsencrypt/letsencrypt.log //로그 확인