Ich schreibe einen kleinen SSL-Proxy-Server und erhalten ssl.SSLError: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3 alert certificate unknown (_ssl.c:661)
von einem Android-App-Client, aber kein Browser. Ich habe ssl.CERT_NONE
gesetzt. Hier ist mein Testcode:unerwartete pyssl Zertifikat Fehler
SSLcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
SSLcontext.load_cert_chain('server.crt', 'server.key')
SSLcontext.verify_mode = ssl.CERT_NONE
SSLcontext.check_hostname = False
s = socket.socket()
s.bind(('127.0.0.1', 443))
s.listen(5)
c = s.accept()[0]
c = SSLcontext.wrap_socket(c, server_side = True)
print c.recv(1024)
Ist dies wegen Zertifikat auf dem Android App Pinning oder ich mache etwas falsch gemacht?
Ich habe ein selbstsigniertes Zertifikat verwendet. Ich habe es auch meinem Browser und meinem Android-Handy hinzugefügt. Der Grund, warum ich hier verwirrt bin, ist, wie ich gegoogelt habe 'SSLV3_ALERT_CERTIFICATE_UNKNOWN' bedeutet, dass mein Python-Code das Client-Zertifikat zurückweist und nicht umgekehrt. – logicalway
@logicalway: Nein, der Client erhält das Serverzertifikat, mag es nicht und sendet diesen Alarm zurück an den Server, der dann den Handshake abbricht und den Alarm anzeigt, den er bekommen hat. Somit mag Ihr Android-Client das Zertifikat nicht, aber es ist unbekannt warum - zu wenige Informationen über den Client und das Zertifikat und wie Sie es hinzugefügt haben. –