[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 연결을 시도하고 서버 인증서를 검증하는 예제입니다.