HTTP(Hypertext Transfer Protocol)
는 웹 서버와 클라이언트 간에 정보를 주고받는 프로토콜입니다.
그러나 HTTP
는 암호화되지 않아 데이터를 전송하는 과정에서 정보가 노출될 위험이 있습니다.
반면, HTTPS(Hypertext Transfer Protocol Secure)
는 SSL(Secure Sockets Layer)
또는 TLS(Transport Layer Security)
라는 보안 프로토콜을 사용해 데이터를 암호화합니다.
이로 인해 데이터가 중간에 노출되더라도, 암호화되어 있어 안전하게 정보를 전송할 수 있습니다.
HTTPS
를 적용하기 위해서는 SSL/TLS
인증서가 필요합니다.
이 인증서는 신뢰할 수 있는 CA(Certificate Authority)
로부터 발급받을 수 있으며, 이는 웹 서버가 신뢰할 수 있는 서버임을 보증합니다.
< 인증서를 발급받는 과정 >
- CA에 인증서 발급 요청(CSR, Certificate Signing Request 생성)
- CA로부터 인증서와 사인된 공개키 받기
- 웹 서버에 인증서와 사인된 공개키 설치
- 웹 서버에서 HTTPS 활성화
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
const options = {
key: fs.readFileSync(실제_키_파일의_경로),
cert: fs.readFileSync(실제_인증서_파일의_경로)
};
https.createServer(options, app).listen(3000, function() {
console.log('HTTPS server started on port 3000');
});
실제 키와 인증서 파일은 꼭 .gitignore
처리를 해줘야 한다.