1. cerbot 설치

우분투 20.04 버전

$ sudo apt-get update

$ sudo apt-get install software-properties-common

$ sudo add-apt-repository universe

$ sudo apt-get install certbot python3-certbot-nginx

 

우분투 18.04 버전

$ sudo apt update

$ sudo apt upgrade

$ sudo add-apt-repository ppa:certbot/certbot

2. nginx 설정 변경하기

$ sudo vi /etc/nginx/sites-available/default

 

각 블럭의 server_name 부분 아래와 같이 형식으로 변경

server_name www.brynserver.site brynserver.site;

server_name www.prod.brynserver.site prod.brynserver.site;

server_name www.dev,brynserver.site dev.brynserver.site;

$ sudo nginx -t

$sudo systemctl reload nginx

 

3. TLS 인증서 받기

TLS: SSL(Secure Sockets Layer)이라고도 하며 Client와 웹서버 간의 데이터들을

안전하게 주고 받기 위해 암호화 통신하는 프로토콜

 

아래와 같은 꼴로 원하는 도메인 주소들 인증서 받는 명령어 입력

$ sudo certbot --nginx -d www.brynserver.site -d brynserver.site  -d www.prod.brynserver.site -d prod.brynserver.site

이후 질문들 아래와 같이 답변

이메일 입력, a, n, 2(리다이렉션)

 

4. aws ec2 https용 인바운드 규칙 수정

 

aws에서 인바운드 규칙 추가하여 포트 열어줘야 함. 443포트

5. https 정상 구동 확인

https://www.ssllabs.com/ssltest/ 사이트에서 제대로 설치됐는지 확인

 

 

1. 가비아에서 도매인 구매

https://domain.gabia.com/?gclid=Cj0KCQjw8vqGBhC_ARIsADMSd1CvJEivLphYJmveF220BOvlnn5jfFCOI6b0SmFjrwvBQ-iMaMtbeh8aAv2rEALw_wcB 

 

가비아: 대한민국 도메인 점유율 1위

대한민국 100만 도메인 등록 업체

domain.gabia.com

.shop이나 .site로 끝나는 도메인들이 저렴한 편 

회원 가입 후 도메인 탭에서 원하는 도메인을 선택해서 결제를 진행하면 된다.

 

2. AWS ec2 서버와 도메인 연결

My가비아->도메인->해당 도메인 관리->DNS 정보->DNS 관리->DNS 설정

아래와 같이 레코드 추가하여 수정 후 저장

 

A타입 레코드: DNS에 보관되는 정보 타입으로 도메인과 서버의 IP 주소 직접 매핑

타입 : A, 호스트 : www , ,위치 : AWS EC2 인스턴스 IPv4 외부 주소 입력, TTL : 3600

www: world wide web

타입 : A, 호스트 : @ , ,위치 : AWS EC2 인스턴스 IPv4 외부 주소 입력, TTL : 3600

 

해당 레코드 추가 과정을 통해 www.도메인주소와 도메인주소를 통해 ec2 서버에 접근할 수 있다.

 

3. 도메인 정상 작동 확인

 

도메인으로 접속시 아래와 같이 오류없이 작동함.

아직 http로 통신해서 주의 요함이 뜨며 해당 welcome to nginx! 페이지는 이전에 nginx를 설치해서 자동으로 뜨는 페이지이다. 이 페이지가 뜨지 않고 연결이 실패했습니다와 같은 페이지가 뜨면 연결이 제대로 되지않은 거다.

 

WinSCP란?

Microsoft Windows용 무료 오픈소스 SFTP, FTP, WebDAV, Amazon S3 및 SCP 클라이언트 프로그램

필자는 이 게시물에서 SFTP 사용할 예정

SFTP란?

SSH 파일 전송 프로토콜/ 보안 파일 전송 프로토콜/ 비밀 파일 전송 프로토콜

보안 네트워크 연결을 통해 보안이 강한 파일 액세스, 관리 및 데이터 교환을 가능하게하는 네트워크 계층 프로토콜

 

1. WinSCP 5.19 다운

https://winscp.net/eng/index.php

WinSCP로 서버에 접근하면 임대한 서버의 파일 상태를 볼 수 있음

 

2. WinSCP 설정

실행 후 새로운 세션 클릭

 

호스트 이름: ec2 아이피 주소

포트 번호: 22

사용자 이름: ubuntu ->우분투 20.04 인스턴스를 임대받았기때문에

고급 클릭

SSH 인증 탭에서 ec2 생성 당시 다운받은 개인키 넣어주기

 

 

설정을 마친 후 로그인하면 아래와 같은 화면이 뜸

왼쪽은 내 컴퓨터의 디렉토리 오른쪽은 aws의 디렉토리

빨간색 동그라미 친 부분을 클릭하면 aws서버의 터미널에 PuTTY를 이용해 접근할 수 있음

 

이때, PuTTY가 깔려있지않다면 따로 설치해야함

 

 

2. Nginx 설치

$ sudo apt update

$ sudo apt install nginx

이후 aws로 임대받은 서버(public IPv4)에 접속해보면 사이트에 접속할 수 없다는 오류가 뜸

aws에서 인바운드를 보면 22번 포트만 열려있으므로 오류가 발생하는 것

(WinSCP는 포트를 22번으로 설정했었기 때문에 사용이 가능했던 것임.)

 

aws 인바운드 규칙 추가

보안 그룹 및 파란색 링크->인바운드 규칙 편집

위치 무관으로 HTTP PORT:80 인바운트 규칙 추가(위치 무관으로하면 보안상으로 좋지는 않음)

이후 aws로 임대받은 서버(public IPv4)에 접속해보면 잘 뜸을 확인할 수 있음

 

3. 기본 jdk 패키지 설치

스프링 부트 프로젝트를 만들거기 때문에 자바를 설치해줬다.

아래 명령어로 설치 가능한 java 리스트 검색

sudo apt install default-jdk //현재 디폴트 open jdk 버전을 자동으로 설치해준다.
java -version // 다운 받은 jdk 버전 확인

 

4. 서버 타임존 변경

ec2 서버의 기본 시간은 미국 시간으로 한국 시간으로 변경해줘야 한다.

푸티에 아래 코드 입력

sudo rm /etc/localtime

sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

참고 사이트

https://mchch.tistory.com/223

https://seongbindb.tistory.com/138

+ Recent posts