본문 바로가기

NETWORK Security/보안 프로토콜

TLS1.3 (6) - 환경 구축 (Nginx-2)

 

 

 

 


 

이전 구축에 이어서 nodejs 와 연동이 가능하므로 nodejs도 설치한다.

 

 

 

 

 


 

nodejs 기본 패키지 설치

 

 

#cd

#mkdir local

#cd local/

#wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.xz

#tar xvf node-v14.15.1-linux-x64.tar.xz

 

 

 

 

#cd node-v14.15.1-linux-x64/

#cd bin

#pwd ; 환경 변수에 해당 경로 적용 위해 복사 (/root/local/node-v14.15.1-linux-x64/bin)

 

 

 

#vi ~/.bash_profile ; 환경 변수 추가

#. ~/.bash_profile ; 환경 변수 적용

 

 

 

 

 

#node -v

버전 및 정상 설치 확인

 


 

이제 express-generator 설치

 

* express-generator : 프레임워크에 필요한 package.json 을 만들어주고 기본 폴더 구조까지 잡아주는 패키지

 

#npm i -g express-generator

 

 

#express okdevtv (임의의 이름)

#cd okdevtv/

#npm install

 

 

#npm audit ; 버전 등 확인 및 관리 가능

 

 

#npm install -g(글로벌) pm2(프로세스 매니저)

 

 

#pm2 start bin/www

*pm : nodejs 에러가 발생하면 서버가 꺼지는 이상한 현상이 일어나기 때문에 이를 알아서 처리해 줌

 

 

 

 

 

 

aws ec2 보안그룹 -> 3000번 port open

 

 

 


 

 

 

이제 무료 도메인 발급 및 도메인 서버 연결을 위해 

 

1. freenom에 접속하여 회원가입을 하고 무료 도메인을 발급 받는다. (참고 사이트는 하단에 첨부)

 

 

 

2. 발급 후 AWS 의 Route53 기능을 사용한다.

* Route53 은 도메인 연결을 가능하게 해주는데 유료이므로 참고하길 바란다.

(나는 얼마 안하길래 한번 사용하구 바루 지웠다)

 

 

 

 

Route53 에서 호스팅 영역 생성에 발급한 나의 도메인 이름을 적어주고, 단순 레코드 정의로 들어와 레코드 이름을 설정해준다.

레코드 이름을 통해 위에서 구축한 nginx 웹 서버에 접근이 가능해진다.

 

그리고 하단에 인스턴스 퍼블릭 DNS 아이피를 작성해주고 정의한다.

 

그럼 이렇게 등록된 것을 확인할 수 있고,

 

 

 

 

 

 

 

바로 위에서 정의한 도메인으로 접속해보면 접속 성공 !!

 

이제 3000번 port 로 접근할 수 있는 것도 확인이 가능하다.

 

 

 

 

이제 /etc/nginx/conf.d/2020.conf 에서 server_name 에 발급받아 연결한 도메인 이름을 추가하고,

 

 

location 에 

 location / {

 sendfile off;

 proxy_pass http://127.0.0.1:3000;

 proxy_redirect default;

 proxy_http_version 1.1;

 proxy_set_header Host $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;

 proxy_cache_bypass $http_upgrade;

 proxy_max_temp_file_size 0;

 }

 

이 값을 추가한다.


 

이제 certbot에서 nginx, centos7 환경의 설치 스크립트를 확인하여 따라하면 된다.

* certbot : 공개 인증 기관인 Let's Encrypt에서 인증서를 가져와 웹 서버에 배치해주도록 도와줌

 

 

 

 

#sudo bash

#yum -y install yum-utils

#yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

#yuminstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

#yum install certbot python2-certbot-nginx

 

 

 

 

#certbot --nginx

명령어 입력 후 진행하면서 이메일도 입력하고, nginx 에서 알아서 연결해둔 내 도메인을 찾아낸다.

 

 

 

 

 

 

다음과 같은 에러가 발생하면 방화벽 설정을 모두 끄고 진행하면 된다.

 

 

 

 

 

설정 완료 !!!

 

 


 

443 포트만 추가하면,

 

 

 

 

TLS1.3 웹 서버 구축 완료.

 

 

 

 

 

 

 

 

자동으로 해당 도메인 접속 시 https 로 적용되어 redirect 되고,

SSL Labs 에서 웹 서버를 점검해봐도 TLS 1.3 구축이 잘된 것을 확인할 수 있다.

 

 

 

 

 

이제 nginx 웹 서버에 TLS 1.3 설정을 마치고 구축을 해두었으므로 다음 포스팅부터 TLS 1.3 트래픽을 분석을 지원하는 툴들을 조사하면서 트래픽을 확인해볼 예정이다. 힘드러

 

 

 

 

 

참고 

: https://www.youtube.com/watch?v=u-leHy-l2a8

: https://www.youtube.com/watch?v=SjOEeW6gQlY

무료 도메인 : tech.cloud.nongshim.co.kr/2018/10/16/%EC%B4%88%EB%B3%B4%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-aws-%EC%9B%B9%EA%B5%AC%EC%B6%95-8-%EB%AC%B4%EB%A3%8C-%EB%8F%84%EB%A9%94%EC%9D%B8%EC%9C%BC%EB%A1%9C-route-53-%EB%93%B1%EB%A1%9D-%EB%B0%8F-elb/