Como posso recuperar o certificado de mesmo nível TLS / SSL de um host remoto usando pytho

Preciso verificar uma lista de IPs e recuperar o nome comum do certificado nesse IP (para cada IP que permita conexões da porta 443). Consegui fazer isso com êxito usando os soquetes e os módulos ssl. Ele funciona para todos os IPs com certificados assinados válidos, mas não está funcionando para certificados autoassinado

Se eu usar esse método, ele exige um certificado válido verificado pelo meu pacote CA:

from socket import socket
import ssl

s = socket()
c = ssl.wrap_socket(s,cert_reqs=ssl.CERT_REQUIRED, ca_certs='ca-bundle.crt')
c.connect(('127.0.0.1', 443))

print c.getpeercert()

Se eu remover ocert_reqs=ssl.CERT_REQUIRED então ele se conecta, mas não recebe o certificad

Como posso recuperar o nome comum de um certificado em um IP, se ele valida ou não no pacote C

questionAnswers(4)

yourAnswerToTheQuestion