더북(TheBook)

4.4 https와 http2

https 모듈은 웹 서버에 SSL 암호화를 추가합니다. GET이나 POST 요청을 할 때 오가는 데이터를 암호화해서 중간에 다른 사람이 요청을 가로채더라도 내용을 확인할 수 없게 합니다. 요즘은 로그인이나 결제가 필요한 창에서 https 적용이 필수가 되는 추세입니다.

SSL이 적용된 웹 사이트에 방문하면 그림 4-19와 같이 브라우저 주소창에 자물쇠 표시가 나옵니다.

▲ 그림 4-19 https 적용 화면

다음은 4.1절에 나왔던 http 서버 코드입니다.

server1.js

const http = require('http');

http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
  res.write('<h1>Hello Node!</h1>');
  res.end('<p>Hello Server!</p>');
})
  .listen(8080, () => { // 서버 연결
    console.log('8080번 포트에서 서버 대기 중입니다!');
  });

이 서버에 암호화를 적용하려면 https 모듈을 사용해야 합니다. 하지만 https는 아무나 사용할 수 있는 것이 아닙니다. 암호화를 적용하는 만큼, 그것을 인증해줄 수 있는 기관도 필요합니다. 인증서는 인증 기관에서 구입해야 하는데, Let’s Encrypt 같은 기관에서 무료로 발급해주기도 합니다.

인증서 발급 과정은 복잡하고 도메인도 필요하므로 인증서를 발급받는 방법은 이 책에서 소개하지 않겠습니다. 발급받은 인증서가 있다면 다음과 같이 하면 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.