[python] M2Crypto를 사용하여 SSL/TLS 서버에서 서버 인증서 비교를 수행하는 방법은 어떻게 되나요?

SSL/TLS 서버에서 서버 인증서를 비교하려면 M2Crypto를 사용하여 SSL 연결을 시도하고 서버 인증서를 검증해야 합니다. 다음은 Python과 M2Crypto를 사용하여 SSL/TLS 서버에서 서버 인증서를 비교하는 방법입니다.

M2Crypto 설치

먼저 M2Crypto를 설치해야 합니다. 다음 명령을 사용하여 M2Crypto를 설치할 수 있습니다.

pip install M2Crypto

서버 인증서 비교 코드

다음은 SSL/TLS 서버에서 서버 인증서를 비교하는 Python 코드입니다.

import M2Crypto
import socket

def verify_server_cert(hostname, port):
    ctx = M2Crypto.SSL.Context('tlsv1_2')
    ctx.set_verify(M2Crypto.SSL.verify_peer | M2Crypto.SSL.verify_fail_if_no_peer_cert, depth=9)

    conn = M2Crypto.SSL.Connection(ctx)
    conn.connect((hostname, port))

    cert = conn.get_peer_cert()
    store = M2Crypto.X509.X509_Store()
    store.load_info('/etc/ssl/certs')
    store.add_cert(cert)

    store_ctx = M2Crypto.X509.X509_Store_Context(store)
    store_ctx.verify_cert(cert, depth=0)

    conn.close()

    return True

hostname = 'your_server_hostname'
port = 443
result = verify_server_cert(hostname, port)
print(f'Server certificate verification result: {result}')

위 코드는 M2Crypto를 사용하여 SSL/TLS 연결을 시도하고 서버 인증서를 검증하는 예제입니다.

참고 자료