[python] M2Crypto를 사용하여 SSL/TLS 서버에서 인증서 체인 검증하는 방법은 어떻게 되나요?
-
M2Crypto 설치하기: 먼저 M2Crypto를 설치해야 합니다. 아래의 코드를 사용하여 pip를 통해 M2Crypto를 설치할 수 있습니다.
pip install M2Crypto
-
서버 연결: SSL/TLS 서버에 연결하려면 M2Crypto의
httpslib.HTTPSConnection
클래스를 사용합니다. 아래는 예시 코드입니다.from M2Crypto import httpslib conn = httpslib.HTTPSConnection('your_server.com') conn.connect()
-
인증서 체인 검증: SSL/TLS 서버로의 연결 시, 서버가 전송한 인증서 체인을 검증해야 합니다. M2Crypto는 이를 자동으로 수행하지만, 필요에 따라 수동으로도 할 수 있습니다. 아래는 수동으로 검증하는 예시 코드입니다.
# conn 변수는 HTTPS 연결을 의미합니다. peer_cert = conn.get_peer_cert() store = peer_cert.get_issuer().certificate_store ctx = M2Crypto.SSL.Context() ctx.set_verify(M2Crypto.SSL.verify_peer, 9) ctx.set_verify_depth(9) store.load_info(store._ptr(), peer_cert.get_subject().as_text()) store.set_verify(ctx, ssl.VERIFY_NONE, callback)
위의 코드는 M2Crypto를 사용하여 SSL/TLS 서버에서 인증서 체인을 검증하는 방법을 보여줍니다. 이를 통해 안전한 연결을 구축하고 데이터를 안전하게 교환할 수 있습니다.
참고: M2Crypto 공식 문서