호스팅 매뉴얼

Home > 호스팅 > 컨테이너호스팅 > Node.js 사용하기

SSL 인증서 설치 후 HTTPS 통신 강제 적용하기 SSL 인증서 설치 후 HTTPS 통신 강제 적용하기

서버에 SSL 인증서를 설치한 후에는 HTTP와 HTTPS 통신이 혼용되는 것을 막기 위해, 소스 코드를 통하여 HTTPS 통신을
강제로 적용할 수 있습니다. 해당 매뉴얼에서는 Express 모듈을 이용한 웹 애플리케이션에서 HTTPS 통신을 강제하는 방법을 안내합니다.

 

• 해당 매뉴얼은 Express 모듈을 이용한 웹 애플리케이션을 기준으로 작성되었습니다. 
• 사전에 프로세스 관리 도구를 설치하면 노드를 편리하게 관리할 수 있습니다. 자세한 내용은 [호스팅>컨테이너호스팅>Node.js 사용하기>프로세스 관리 도구 사용하기] 매뉴얼을 확인해 주세요.

 

 서버에 SSL 보안서버 인증서를 설치하지 않았다면 HTTPS 통신 적용은 불가능합니다. 
 해당 소스 코드는 참고용으로 작성된 코드이며, 고객 소스 코드 및 환경에 따라 적용되지 않을 수 있습니다.
 Express 모듈을 설치하지 않은 환경에서는 적용이 불가능하니 반드시 확인해주세요. 

 

 

1. HTTPS 통신을 적용하고자 하는 웹 프로젝트의 js 파일을 다음과 같이 수정합니다.

 

const express = require('express');
const app = express();

…

app.enable('trust proxy');
app.use(function(req, res, next){
        if(!req.secure){
                res.redirect("https://"+ req.headers.host + req.url);
        }else{
                next();
        }
});

…

app.listen(8080);

 

· app.enable 및  app.use 설정 부분은 미들웨어 최상단에 위치해야 합니다.

 

 

2. 위 방식 대신 아래 코드를 참고하여 수정해도 정상 동작합니다.

 

var http = require('http'); 
var express = require('express'); 
var app = express(); 
app.all("*", (req, res, next) => { 
        console.log("req.secure == " + req.secure); 
        var protocol = req.headers['x-forwarded-proto'] || req.protocol; 
        if(protocol == 'https'){ 
                next(); 
        }else{ 
                var domain = req.hostname; 
                res.redirect("https://" + domain + req.url); 
        } 
}) 
app.get('/', function(req, res) { 
        res.send('hello world'); 
}); 
http.createServer(app).listen(process.env.PORT, function(){ 
            console.log("Https server listening on port " + process.env.PORT); 

 

 

3. 기존 방식과 동일하게 웹 애플리케이션을 실행합니다.

 

  • 컨테이너호스팅 시작하기

    • DNS 설정하기

    • SFTP/SSH 접속하기

    • DB 접속하기

    • phpPgAdmin 접속 설정하기

  • 관리 콘솔

    • 관리 콘솔 알아보기

  • 자원 현황

    • 사용량 현황 보기

    • 트래픽 당겨쓰기

    • 웹 용량 추가하기

    • 트래픽 추가/충전하기

    • 웹 용량 차단 해제하기

    • 용량 초과 알림 설정하기

    • 메모리 용량 추가하기

  • 기본 정보

    • 서비스 시작일/만기일 보기

    • 소유자/관리자 정보 보기

    • 타입 변경하기

    • 주간운영리포트 수신 설정하기

    • 장애 알림 받기

  • 도메인

    • 대표 도메인 변경하기

    • 도메인 연결/해지하기

  • 보안 설정

    • 웹 서버(SFTP/SSH) 접속 설정하기

    • 웹 서버(SFTP/SSH) 비밀번호 변경하기

    • 웹사이트 접근 IP 관리하기

    • SSH/SFTP 접속 차단 IP 해제하기

    • DB 서버 비밀번호 변경하기

    • 웹 서버 접속 허용 IP 등록하기

    • 웹쉘 탐지 관리하기

  • 웹 서버

    • 웹 서버 환경 변경하기

    • 웹 서버 초기화하기

    • 웹 서버 접속 허용 IP 등록하기

    • 웹 서버(SFTP/SSH) 비밀번호 변경하기

    • 웹 로그 보기

  • DB 서버

    • DB 서버 비밀번호 변경하기

    • phpPgAdmin 접속 설정하기

    • DB 접속하기

    • MySQL 서버 접속/백업/복원하기

    • DB 서버 환경 변경하기

    • DB 서버 초기화하기

  • 백업/복원

    • 백업하기

    • 복원하기

  • 모니터링

    • 서버 현황 보기

    • 웹/DB 현황 보기

    • 사이트 웹 로그 분석하기

    • 슬로우 쿼리 확인하기

    • 트래픽 현황 보기

    • 이력 관리하기

  • 메일

    • 메일 관리하기

  • 서비스 계약 관리

    • 결제 알림 설정하기

    • 담당자 정보 변경하기

    • 서비스 해지하기

  • Node.js 사용하기

    • Node.js 환경 확인하기

    • 프로세스 관리 도구 사용하기

    • 기본 웹 애플리케이션 만들기

    • Express로 웹 애플리케이션 만들기

    • NVM으로 버전 관리하기

    • SSL 인증서 설치 후 HTTPS 통신 강제 적용하기

    • 채팅 서버 만들기

    • MySQL 모듈 기본 사용 방법

  • Python 사용하기

    • Python 환경 확인하기

    • 패키지 관리 도구 사용하기

    • Flask로 기본 웹 애플리케이션 만들기

    • Django로 웹 애플리케이션 만들기

    • Gunicorn으로 정적 파일 서비스하기

    • 미디어 파일을 실시간으로 서비스하기 위한 Django 설정법

    • SSL 인증서 설치 후 HTTPS 통신 강제 적용하기

  • Java 사용하기

    • Java 환경 확인하기

    • Spring Boot CLI로 프로젝트 생성하기

    • Spring Boot CLI로 Groovy 웹 프로젝트 실행하기

    • Maven으로 SpringBoot 웹 프로젝트 실행하기

    • Gradle로 SpringBoot 웹 프로젝트 실행하기

    • 빌드한 웹 프로젝트 실행하기

    • SSL 인증서 설치 후 HTTPS 통신 강제 적용하기

  • Redis 사용하기

    • Node.js와 Redis 연동하기