2011-03-30 5 views
4

주기적으로 내 클라이언트 웹 사이트가 제대로 작동하는지 확인하기 위해 빠른 파이썬 스크립트를 작성하는 중입니까? 이러한 검사 중 하나는 SSL 인증서가 최신 상태인지 확인하거나 인증서가 곧 만료 될 경우 경고를 제공하는 것입니다.Python을 사용하여 확인하지 않고 피어에서 SSL 인증서 받기

SSLS 패키지는 SSLSocket.getpeercert() 메소드로 피어 인증을 얻을 수있는 방법을 제공하지만 인증서 유효성을 검증 할 수있는 경우에만 인증서를 리턴합니다. CA 인증서를받지 못하면 유효성 검사가 작동하지 않습니다.

내가 할 수있는 일은 유효성을 검사 할 수 없더라도 피어 인증서를 얻는 것이므로 올바른 CA 인증서를 얻고 도메인 이름 일치, 만료 확인 등의 다른 검사를 수행하는 데 필요한 정보를 얻을 수 있습니다. 날짜가 올바른 범위에 있음 등. 누구든지이 정보를 얻을 수있는 방법을 알고 있습니까?

pyCurlpyOpenSSL은 가능한 후보자처럼 보이지만 예제를 찾거나 인증서를 반환하도록 관리하지 못했습니다.

건배

답변

3

인증서 출력 파일을 반복하는 인증서를 잡기 위해 쉘 스크립트를 사용하고 파이썬을 사용할 수있다. 다음과 같이 입력하십시오 :

$ openssl s_client -connect host:port -showcerts > certfile 

가 작동 할 수 있습니다. 또한 get_peer_certificate() 방법이있다 pyOpenSSL의 Connection 개체에 대한 설명서를 읽고 있습니다

http://packages.python.org/pyOpenSSL/openssl-connection.html#l2h-187

내가 이제까지 pyOpenSSL 모듈을 사용하지 않은,하지만 그것은 아마도 파이썬에서 모든 것을 유지하는 가장 좋은 건입니다.

+0

감사합니다 커트 PyOpenSSL의 제안은 잘 작동합니다. – Tim