본문 바로가기

JavaScript

[JS] 로컬 서버 http https로 변경하기

개발을 할때 로컬 서버를 띄우면 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을 각각 입력하면 설정대로 뜨게된다.

 

참고사이트)

 

[node.js] localhost https 적용 (SSL)

서론 로컬에서 개발할 때 http://localhost:8000 과 같은 형태의 URL을 상용하게 됩니다. 하지만 소셜 로그인을 local에서 수행하고 싶을 때 벤더사마다 다른 보안 정책으로 https 프로토콜에서만 로그인

charming-kyu.tistory.com