[python] python-dotenv를 사용하여 SSL/TLS 설정하기

SSL/TLS (Secure Sockets Layer/Transport Layer Security)은 웹 애플리케이션에서 데이터를 암호화하여 안전하게 전송하는 프로토콜입니다. 이 글에서는 python-dotenv라이브러리를 사용하여 Python 애플리케이션에서 SSL/TLS 설정을 관리하는 방법을 알아보겠습니다.

python-dotenv란?

python-dotenv는 Python 애플리케이션에서 설정 파일을 관리하기 위한 라이브러리입니다. 이를 사용하면 환경변수를 설정 파일에 저장하여 코드에서 간단하게 사용할 수 있습니다. 환경변수를 사용하여 SSL/TLS 설정을 관리하는 것은 보안상의 이점과 함께 코드의 유연성과 포터블성을 높일 수 있습니다.

python-dotenv 설치하기

먼저, python-dotenv를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다.

pip install python-dotenv

설정 파일 작성하기

SSL/TLS 설정을 관리하기 위해 설정 파일을 작성해야 합니다. .env 또는 .env.local과 같은 파일 이름을 사용하여 설정 파일을 작성할 수 있습니다. 이 설정 파일에는 다음과 같은 환경변수를 설정할 수 있습니다.

SSL_CERTIFICATE=/path/to/certificate.crt
SSL_PRIVATE_KEY=/path/to/private.key

위의 예시에서는 SSL 인증서와 개인 키 파일의 경로를 SSL_CERTIFICATESSL_PRIVATE_KEY 환경변수에 저장하고 있습니다. 이렇게 설정 파일을 작성한 후 애플리케이션 코드에서 이 값을 사용할 수 있습니다.

애플리케이션 코드에 적용하기

다음은 python-dotenv를 사용하여 애플리케이션 코드에서 SSL/TLS 설정을 적용하는 예시입니다.

from dotenv import load_dotenv
import os
import requests

# .env 파일에서 환경변수 로드
load_dotenv()

# SSL/TLS 설정값 가져오기
ssl_certificate = os.getenv('SSL_CERTIFICATE')
ssl_private_key = os.getenv('SSL_PRIVATE_KEY')

# SSL/TLS 적용을 위한 코드 작성
session = requests.Session()
session.verify = ssl_certificate
session.cert = ssl_private_key

# HTTPS 요청 예시
response = session.get('https://example.com')

# 응답 출력
print(response.text)

위의 코드에서 load_dotenv()를 호출하여 .env 파일에서 환경변수를 로드합니다. 그리고 os.getenv()를 사용하여 SSL_CERTIFICATESSL_PRIVATE_KEY 값을 가져옵니다. 이 값을 이용하여 SSL/TLS를 설정하고, requests 라이브러리를 통해 HTTPS 요청을 보낼 수 있습니다.

결론

python-dotenv를 사용하여 SSL/TLS 설정을 손쉽게 관리할 수 있습니다. 환경변수를 사용함으로써 보안과 코드 유연성을 동시에 확보할 수 있으므로, 복잡한 SSL/TLS 설정을 간단하게 관리할 수 있는 이 방법을 활용해보세요.