티스토리 뷰

개발/node, express

HTTPS 구현

네스사 2023. 5. 2. 21:01

HTTPS 


  • Http는 Hyper Text Transfer Protocol의 약자로 네트워크를 통해 데이터를 전송하기 위한 프로토콜입니다. 
  • Https의 S는 TLS 또는 SSL을 사용하여 HTTP 요청 및 응답 을 암호화하는 보안을 나타냅니다.
  • localhost에서 https를 사용하려면 public key와 별도의 private key를 포함하는 인증서를 만들어야 합니다
  • mkcert라는 프로그램을 통해 로컬 환경(내 컴퓨터)에서 신뢰할 수 있는 인증서를 만들 수 있습니다.

 

 

mkcert 설치법


npm install -g mkcert
  • 먼저 터미널에서 전역적으로 mkcert를 설치합니다.
  • 이후,  CA(Certificate Authority)를 생성합니다. 이때, ca.key(CA private key), ca.crt(CA certificate)가 생성됩니다. 
mkcert create-ca
  • CA를 생성했으므로 다음 단계는 localhost 도메인의 인증서를 만들어 냅니다. 이러면 인증서(cert.crt)와 개인키(cert.key)가 생성됩니다.
mkcert create-cert
  • 이제 사용할 폴더에 그대로 복사하고 express로 다음과 같은 내용을 넣습니다.
const fs = require('fs');
const https = require('https');
const express = require('express');
const app = express();
 
//mkcert에서 발급한 인증서를 사용하기 위한 코드입니다.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';


let server;

if (fs.existsSync(__dirname +'./cert.crt') && fs.existsSync(__dirname +'/cert.key')) {
//개인키와 인증서가 존재할 경우 각각을 불러온다
  const privateKey = fs.readFileSync(__dirname + '/cert.key', 'utf8');
  const certificate = fs.readFileSync(__dirname + '/cert.crt', 'utf8');
  const credentials = {
    key: privateKey,
    cert: certificate,
  };

//https서버 생성
  server = https.createServer(credentials, app);

 

혹은

 

const https = require('https');
const fs = require('fs');
const express = require('express');

const app = express();

https
  .createServer(
    {
      key: fs.readFileSync(__dirname + '/cert.key', 'utf-8'),
      cert: fs.readFileSync(__dirname + '/cert.crt', 'utf-8'),
    },
    app.use('/', (req, res) => {
      res.send('Congrats! You made https server now :)');
    })
  )
  .listen(3001);

'개발 > node, express' 카테고리의 다른 글

세션  (0) 2023.05.02
쿠키  (0) 2023.05.02
Node. js와 express의 기본 문법  (0) 2023.04.09
CORS  (0) 2023.04.09
REST API  (0) 2023.03.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
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 31
글 보관함