반응형
SSL 인증서를 받고 HTTPS로 express 서버 구동
기존 코드(http)
import express from 'express';
const app = express();
server = app.listen(3000, () => console.log('port 3000 Server On'));
HTTPS 적용 코드
import express from 'express';
import https from 'https';
import fs from 'fs';
import config from './conf/config';
const app = express();
const server = https.createServer({
key: fs.readFileSync(keyFile,"utf-8"),
cert: fs.readFileSync(certFile,"utf-8"),
},app);
server.listen(3000, () => console.log('port 3000 Server On'));
let's encrypt SSL 인증서 key와 cert파일 위치 찾기
# su
# cd /etc/letsencrypt/live/도메인명
도메인명 디렉터리 내부의 privkey.pem cert.pem 파일을 key와 cert 파일 이름에 작성해주면 된다.
별개로 리버스 프록시를 사용할 때는 https로 express서버를 동작하지 않아도 된다.
SSL 인증서를 받았다면 리버스프록시로 https 적용되기 때문이다. Http로 구동해도 된다.
리버스프록시를 안 쓴다면 서버 구동하는 포트로 접근해야 한다
ex) localhost:3000
Nginx 설정
$ sudo vi /etc/nginx/conf.d/virtual.conf
server {
server_name 도메인주소;
listen 443;
ssl on;
ssl_certificate /etc/letsencrypt/live/도메인주소/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/도메인주소/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP;
ssl_prefer_server_ciphers on;
# 리버스프록시 설정
# location / {
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header HOST $http_host;
# proxy_set_header X-NginX-Proxy true;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
(proxy_pass 코드작성 X)
# proxy_redirect off;
# }
}
반응형
'Web > Node.js' 카테고리의 다른 글
node, npm 버전 관리 (0) | 2021.03.04 |
---|---|
Moment.js 시간표기와 시간 차이 구하기 (0) | 2020.07.05 |
Node.JS 카카오페이 API 사용하기 (2) | 2020.06.18 |
노드몬(Nodemon) 강제종료하기 (0) | 2020.05.20 |
express 모듈 활용 정적 파일 (0) | 2020.01.16 |