HTTPS는 HyperText Transfer Protocol over Secure Socket Layer의 약자로, HTTP에서 보안이 강화된 버전이다. SSL 또는 TSL 프로토콜을 통해 세션 데이터를 암호화한다. 기본 포트는 443이다 (http는 80)
SSL은 웹사이트와 브라우저(혹은, 두 서버) 사이에 전송된 데이터를 암호화하여 인터넷 연결을 보안을 유지하는 표준 기술이다.
TLS는 가장 최신 기술로 더 강력한 버전의 SSL이다. 그러나 SSL이 더 일반적으로 사용되는 용어이기에, 여전히 보안 인증서는 SSL이라 불린다. SSL 3.0부터 TSL 1.0으로 변경되었다.
나의 경우엔 mac OS를 사용하여 명령어는 아래와 같다.
$ brew install mkcert
$ brew install nss(--- firefox를 사용할 경우)
다음 명령어를 통해 로컬을 인증된 발급기관으로 추가해야 한다.
$ mkcert -install
$ mkcert -key-file key.pem -cert-file cert.pem localhost 127.0.0.1 ::1
그러면 key.pem, cert.pem이라는 파일이 내 로컬 파일에 깔리게 된다.
key는 나의 공개키를 의미하고, cert는 내 자격증명을 할 수 있는 증명서라고 볼 수 있다.
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);
///////////////////////////////////////////////////////////////
<express를 이용한 작성 방법>
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'),
},
app.use('/', (req, res) => {
res.send('Congrats! You made https server now :)');
})
)
.listen(3001);