호스팅 매뉴얼

Home > 호스팅 > 컨테이너호스팅 > Python 사용하기

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

 

서버에 SSL 인증서를 설치한 후에는 HTTP와 HTTPS 통신이 혼용되는 것을 막기 위해, 소스 코드를 통하여 HTTPS 통신을
강제로 적용할 수 있습니다.

해당 매뉴얼에서는 Django 및 Flask 프레임워크를 이용한 웹 애플리케이션에서 HTTPS 통신을 강제 적용하는 방법을 안내합니다.

 

• 해당 매뉴얼은 Django 및 Flask 프레임워크를 기준으로 작성되었습니다.

 

• 서버에 SSL 보안서버 인증서를 설치하지 않았다면 HTTPS 통신 적용은 불가합니다.

• 해당 소스 코드는 참고용으로 작성된 코드이며, 고객 소스 코드 및 환경에 따라 적용되지 않을 수 있습니다.

 

 

Django 프레임워크 이용 시

 

1. Django 프로젝트의 setting.py 파일에 내용을 추가합니다.

 


…

ALLOWED_HOSTS = ['*']



SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

SECURE_SSL_REDIRECT = True



INSTALLED_APPS = [

…

 

•  해당 구문의 적용을 위해서는 setting.py의 MIDDLEWARE에 'django.middleware.security.SecurityMiddleware' 설정이 적용되어야 하며, 해당 MIDDLEWARE 설정은 Django 프로젝트 생성 시 기본으로 작성되어 있습니다.

 

 

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

 

 

Flask 프레임워크 이용 시

 

Flask의 경우, 소스 코드를 통한 리디렉션 방식과 파이썬 모듈을 통한 적용 방식 2가지 방법이 존재합니다.

 

 1. 소스 코드를 통한 리디렉션 방식

1) Flask 프로젝트의 메인 코드를 다음과 같이 수정합니다.

 

from flask import Flask, request, redirect

app = Flask(__name__)

…

@app.before_request
def before_request():
    scheme = request.headers.get('X-Forwarded-Proto')
    if scheme and scheme == 'http' and request.url.startswith('http://'):
        url = request.url.replace('http://', 'https://', 1)
        code = 301
        return redirect(url, code=code)

…

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

 

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

 

 

2. 파이썬 모듈을 통한 적용 방식 

1)  pip 명령어를 통해 Flask-SSLify 모듈을 설치합니다.

 


pip install Flask-SSLify

 

2) Flask 프로젝트의 메인 코드를 다음과 같이 수정합니다.

 

from flask import Flask
from flask_sslify import SSLify

app = Flask(__name__)
sslify = SSLify(app)

…

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

 

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 연동하기