개발을 할때 로컬 서버를 띄우면 http://localhost:8080 과 같은 형태이다.
페이스북 로그인과 같이 테스트 하면서 URL을 설정할 때 http를 막는 곳이 있을 수 있어 http->https로 변경하는 작업이 필요할 수 있다.
따라서 아래와 같이 실행한다.
mkcert
mkcert를 전역적으로 설치
npm install -g mkcert
아래 express 도 추가로 설치
npm install express
npm install express-sanitizer
CA (Certificate Authority) 만들기 ( 파일생성됨: ca.key - CA private key /ca.crt - CA certificate)
mkcert create-ca
localhost 도메인의 인증서를 만들기 ( 파일생성됨:cert.key -인증서 /cert.crt -개인키 //이 두 파일이 프로젝트내에 있도록 복사)
mkcert create-cert
실행하는 https.js 파일 작성(폴더 바로 안에-최상위)
const express = require('express');
const expressSanitizer = require('express-sanitizer');
const https = require('https');
const fs = require('fs');
const path = require('path');
// certificate와 private key 를 가져옴
const options = {
key: fs.readFileSync('./cert.key'),
cert: fs.readFileSync('./cert.crt'),
};
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(expressSanitizer());
// 정적 파일을 제공할 디렉토리 설정 (예: js 폴더) 사용하려는 파일 설정-선택
app.use('/js', express.static(path.join(__dirname, '../js')));
// 기본 경로 설정
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, '../index.html')); // 루트 디렉토리의 index.html 파일을 서빙
});
const HTTP_PORT = 8080;
const HTTPS_PORT = 8081;
// HTTP 서버 시작
app.listen(HTTP_PORT, () => {
console.log(`Server started on port ${HTTP_PORT}`);
});
// HTTPS 서버 시작
https.createServer(options, app).listen(HTTPS_PORT, (err) => {
console.log(`HTTPS server started on port ${HTTPS_PORT}`);
});
실행
node https.js
실행 후 브라우저에서 http,https URL을 각각 입력하면 설정대로 뜨게된다.
참고사이트)
'JavaScript' 카테고리의 다른 글
[JS] Promise 프로미스 의미 (0) | 2023.05.18 |
---|---|
[JavaScript] 객체의 key 와 value 가져오기 (0) | 2023.04.07 |
[JavaScript] 입력한 숫자에 따라 배열을 생성하는 함수 만들기 (0) | 2023.03.31 |
[Javascript] 객체(object)의 키(key)와 값(value)을 배열로 얻기 (0) | 2023.03.27 |
[Javascript] 심볼(Symbol) (feat. 객체 key) (0) | 2023.03.27 |