HTTP와 HTTPS 차이점, HTTPS 적용 방법

김겜김·2024년 4월 3일
1

🪭HTTP(HyperText Transfer Protocol)와 HTTPS(HyperText Transfer Protocol Secure)는 인터넷에서 데이터를 전송하는 데 사용되는 프로토콜입니다. 이 두 프로토콜은 데이터 전송의 보안 여부와 관련하여 중요한 차이점이 있습니다.

HTTPSHTTP에 비해 보안적으로 더 강력하며, 민감한 데이터를 전송할 때 권장되는 프로토콜입니다. 현대 웹 서비스에서는 HTTPS를 사용하여 사용자 데이터의 보안을 보장하고 중요한 정보를 안전하게 전송합니다.


⛳HTTPS를 설정하고 인증하는 방법

도메인 이름에 HTTPS를 사용하려면 웹사이트에 SSL 또는 TLS 인증서가 설치되어 있어야 합니다. 웹 호스트(웹 호스팅 서비스 업체)에서 HTTPS 보안을 제공하거나 인증 기관에 SSL/TLS 인증서를 요청하여 직접 설치할 수도 있습니다. SSL/TLS 인증서는 정기적으로 갱신해야 할 수 있습니다.

다양한 유형의 웹 서버가 있으며 웹 서버마다 SSL/TLS 인증서를 설치하고 업데이트하는 자체 프로세스가 있습니다. 웹사이트에서 사용 중인 웹 서버를 확인한 다음 안내에 따라 인증서를 설치 및 업데이트해야 합니다

SSL/TLS 인증서 획득:

인증서를 획득하기 위해 SSL/TLS 인증 기관(CA)에 요청하거나, 무료 인증 기관을 통해 인증서를 발급받을 수 있습니다.

서버에 SSL/TLS 인증서 설치:

발급받은 인증서를 웹 서버에 설치합니다. 이를 위해 인증서 파일과 개인 키 파일이 필요합니다.

웹 서버 설정 변경:

웹 서버 설정 파일을 수정하여 SSL/TLS 인증서와 개인 키를 지정하고, HTTPS를 사용하는 데 필요한 기타 설정을 추가합니다.

HTTPS 리다이렉션 설정:

HTTP에서 HTTPS로의 리다이렉션을 설정하여 사용자가 안전한 연결로 자동으로 리디렉션되도록 합니다.

모든 페이지에 HTTPS 적용:

모든 페이지의 URL을 HTTPS로 변경하고, 웹 사이트의 모든 리소스가 HTTPS를 통해 로드되도록 수정합니다.

SSL/TLS 동작 테스트:

HTTPS가 올바르게 설정되었는지 확인하기 위해 웹 사이트에 대한 HTTPS 연결을 테스트하고, 모든 페이지 및 리소스가 안전하게 로드되는지 확인합니다.

SSL/TLS 인증서 갱신 및 유지 보수:

SSL/TLS 인증서의 유효 기간이 만료되기 전에 인증서를 갱신하고, 웹 서버의 SSL/TLS 설정이 최신 상태를 유지해야 합니다.
HTTPS를 적용하는 과정은 웹 서버의 유형 및 사용하는 호스팅 서비스에 따라 다를 수 있습니다. 보다 자세한 지침은 사용하는 웹 서버의 공식 문서를 참조하거나,

🪣설치방법과 예시코드

HTTPS를 설정하고 인증하는 방법은 서버 측에서 SSL/TLS 인증서를 생성하고 설치하여 구현됩니다. 아래는 Node.js와 Express.js를 사용하여 HTTPS를 설정하는 간단한 예시 코드입니다.

  • 노드를 사용한 패키지 install
npm install express fs https
  • Express 애플리케이션을 HTTPS로 설정하는 코드
const express = require('express');
const https = require('https');
const fs = require('fs');

const app = express();

// HTTPS 설정을 위한 인증서 경로와 키 경로
const privateKey = fs.readFileSync('sslcert/server.key', 'utf8');
const certificate = fs.readFileSync('sslcert/server.crt', 'utf8');
const credentials = { key: privateKey, cert: certificate };

// HTTPS 서버 생성
const httpsServer = https.createServer(credentials, app);

// 기본 라우트
app.get('/', (req, res) => {
  res.send('HTTPS 서버가 정상적으로 작동합니다!');
});

// 포트 설정 및 서버 시작
const PORT = 443;
httpsServer.listen(PORT, () => {
  console.log(`HTTPS 서버가 포트 ${PORT}에서 실행 중입니다.`);
});

위의 코드를 자신이 사용할수있게 만들어보고 요청을 잘 주고받으면 사용가능하지만

실제로는 상용 SSL/TLS 인증서를 구매하여 사용해야 하며, 이러한 설정은 프로덕션 환경에서만 사용해야 합니다. 또한, 보안을 위해 인증서의 개인 키를 잘 보호해야 합니다.

profile
개발에 관심이있습니다

0개의 댓글