TIL : Https

영아·2021년 5월 29일
0

도메인 주소를 보면 http:// https:// 자주봤다. https는 왜 생긴걸까?


1. Https

HTTPS : HyperText Transfer Protocol over Secure Socket Layer 약자
HTTP over SSL(TLS), HTTP over Secure라고 부르기도함

보안기능이 하나 더 붙은 것이 https라고 한다.
즉, http 프로토콜 내용을 암호화해서 보안성이 높아졌다고 한다.

이전의 http는 중간 요청을 누군가 보게 되면 중요한 정보를 가로채기 쉬었지만 https는 요청을 암호화하여 key가 없다면 정보를 가로챌수 없다고한다!!

Https의 특징

  • 인증서 :
    데이터를 보내준 서버가 진짜 데이터를 보내준 서버인지 확인하는 용도이다!
    (데이터 제공자 신원보장, 도메인종속)
  • CA : Cetificate Authority,
    공인 인증서 발급 기관
    (자격이 계속 유지 되는것이 아니라 자격을 박탈 당할 수 도 있다.)
  • 비대칭 키 암호화 :
    전혀 다른 키 한쌍으로 암호화와 복호화를 할 수 있다.
    (키 A로 암호화 => 키 B로만 복호화 가능)
    하나의 키는 공개, 하나의키는 숨김

2. 인증서 발급 및 HTTPS 서버 구현

  1. $ brew install mkcert
  1. $ mkcert -install

  2. $ mkcert -key-file key.pem -cert-file cert.pem localhost 127.0.0.1 ::1

=> cert.pem, key.pem 인증서 완성~

  1. node.js https 모듈이용하기

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

https
  .createServer(
    {
      key: fs.readFileSync(__dirname + '/key.pem', 'utf-8'),
      cert: fs.readFileSync(__dirname + '/cert.pem', 'utf-8'),
    },
    function (req, res) {
      res.write('Congrats! You made https server now :)');
      res.end();
    }
  )
  .listen(3001);

3. 마무리

예전에 배웠던 서버를 만드는것과 달리 인증서를 발급하는 과정을 추가하고 그것을 이용해서 서버를 만드는 부분이 신기했다.
만들어진 인증서는 git에 업로드 되지 않기위해서 (key.pem의 경우 개인 키이기 때문에 암호처럼 다루어야함)
따로 설정해야하는 부분도 신기했다. 아직 보안이나 서버에 대해서는 잘 알지 못하기 때문에 계속해서 익숙해질 수 있도록 해야겠다.🧐🧐🧐🧐🧐🧐

profile
코딩 배우는 아이

0개의 댓글