[python] PyOpenSSL을 사용하여 SSL 인증서를 생성하는 방법은 무엇인가요?

PyOpenSSL은 Python에서 OpenSSL을 사용하기 위한 라이브러리로, SSL 인증서를 생성하고 관리하는 데 사용할 수 있습니다. 다음은 PyOpenSSL을 사용하여 SSL 인증서를 생성하는 간단한 예제입니다.

먼저, PyOpenSSL을 설치해야 합니다. pip를 사용하여 다음과 같이 PyOpenSSL을 설치할 수 있습니다.

pip install pyopenssl

다음으로 Python 스크립트에서 필요한 모듈을 임포트합니다.

from OpenSSL import crypto

SSL 인증서를 생성하기 위해 다음과 같은 함수를 작성합니다.

def generate_certificate(key_file, cert_file, subj):
    k = crypto.PKey()
    k.generate_key(crypto.TYPE_RSA, 2048)

    cert = crypto.X509()
    cert.get_subject().CN = subj
    cert.set_serial_number(1000)
    cert.gmtime_adj_notBefore(0)
    cert.gmtime_adj_notAfter(10*365*24*60*60)
    cert.set_issuer(cert.get_subject())
    cert.set_pubkey(k)
    cert.sign(k, 'sha512')

    with open(key_file, 'wb') as keyfile:
        keyfile.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, k))
    with open(cert_file, 'wb') as certfile:
        certfile.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))

이 함수는 개인 키와 인증서 파일의 경로, 그리고 주체 정보(subj)를 인자로 받습니다. 주체 정보는 생성되는 인증서에 포함될 CN(Common Name)입니다.

함수를 호출하여 SSL 인증서를 생성하고 파일에 저장할 수 있습니다.

generate_certificate("private.key", "cert.crt", "example.com")

위 예제에서는 “private.key”와 “cert.crt”라는 파일에 개인 키와 인증서를 저장하고 있습니다. “example.com”은 인증서의 주체 정보로 사용됩니다. 적절한 파일 경로와 주체 정보를 사용해야 합니다.

이제 PyOpenSSL을 사용하여 간단하게 SSL 인증서를 생성하는 방법을 알게 되었습니다. 이 예제를 기반으로 원하는대로 인증서를 생성하고 사용할 수 있습니다.

참고: