티스토리 뷰
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 |
댓글