일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ssl
- Homogeneous Coordinates
- git
- EC2
- pm2
- Dual energy X-ray
- object detection
- AWS
- relaxation time
- MySQL
- coursera
- Emoji
- Anaconda
- FSL
- nodejs
- x-ray
- https
- kernel
- 평가지표
- pytorch
- ml
- procedure
- 동차좌표계
- Cost Function
- error
- MRI
- NRMSE
- Map-reduce
- ubuntu
- CT
- Today
- Total
Pay it Forward
NodeJS로 배포한 서비스에 SSL 인증서 취득하기 본문
보안적인 이슈가 많은 근래 앱스토어에서도 SSL을 필수로 취득하도록 하며
https 통신은 의무가 되어가고 있습니다
이 게시물에서는 AWS의 EC2 인스턴스에 NodeJS로 만든 프로젝트를
SSL을 취득하여 https 통신을 가능하게 만드는 과정을 정리해 보고자 합니다
순서
1. 도메인 준비
2. Route53을 이용하여 도메인과 EC2 인스턴스 연결
3. nginx를 사용하여 NodeJS를 80번 포트에서 접근가능하도록 열어주기
4. nginx에서 도메인 - IP address 연결하기
5. ACM을 통해서 SSL 취득하기
6. 취득한 SSL을 사용해 ELB생성 및 Route53 수정하기
위의 과정에서 1~4번 과정을 마치면 Nodejs를 도메인을 사용하여 통신 가능하며
나머지 5~6번 과정을 추가로 마치면 https 통신이 가능합니다
하는 과정에서 실수를 할 수 있기 때문에 한번에 https 통신을 하기 보다는
http 통신을 먼저 마친후에 https 통신을 하는 것을 권장드립니다
도메인 준비 및 EC2와 연결하기
참고로 EC2를 도메인과 연결하려면 탄력적IP할당이 필수적이며
NodeJS서비스를 도메인에 연결하여 가동시키기 위해서는 pm2 모듈을 사용하시는 것을 추천드립니다
nginx를 사용하여 도메인 - NodeJS 연결하기
우선 nginx를 설치합니다
sudo apt-get update
sudo apt-get install nginx
설치 후에 자신의 도메인으로 접속하였을 때
다음과 같이 nginx가 반겨주면 성공한 것입니다 :D
만약 위와 같은 화면이 뜨지 않는다면 nginx를 실행해주세요
sudo service ngnix start
nginx가 정상적으로 작동한다면 프록시 설정을 위해 디렉토리를 이동합니다
cd /etc/nginx/sites-available
sites-available 은 프록시 설정을 설정하는 디렉토리 입니다
sites-available 안에 node-server라는 파일을 다음과 같이 작성합니다
sudo vi node-server
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_set_header Host $http_host;
proxy_pass http://탄력적IP address:3000;
proxy_http_version 1.1;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
이는 server_name에 적힌 경로로 클라이언트의 요청이 오면
proxy_pass에 적힌 경로, 즉 탄력적IP에 할당된 EC2의 인스턴스로 요청을 전달해 준다는 의미입니다
이제 새로 만든 node-server 파일을 /etc/nginx/sites-enabled 에 연결해줍니다
sudo ln -s /etc/nginx/sites-available/node-server /etc/nginx/sites-enabled/
모든 설정이 끝났습니다! nginx를 재시작합니다
sudo service nginx restart
준비한 도메인으로 접속하면 nodejs로 연결되어 잘 작동하는 것을 확인하실 수 있습니다
ACM을 통해서 SSL 취득하기
SSL 사용하여 ELB 생성 및 Route53 수정하기
위 과정을 모두 마치면 소중한 자물쇠 취득과 함께 SSL을 통한 HTTPS 통신이 가능하게 됩니다! :D
'Server > NodeJS' 카테고리의 다른 글
Node.JS에 이모티콘(emoji) 저장하기 (0) | 2020.05.22 |
---|---|
[Error] pm2 : Too many unstable restarts 에러 해결 (0) | 2020.05.20 |
NodeJS, npm 설치하기 (using NVM) (0) | 2020.03.27 |
[NodeJs] AWS EC2에 서버 올리기 (using pm2) (0) | 2020.02.06 |