2013-07-02 3 views
21

Derzeit verwenden Sie libmproxy, die ihrerseits telnetlib verwendet, um Anfragen an HTTPS-Webseiten zu stellen. Jedoch wird der folgende Fehler ausgelöst:Wie vermeide ich den Fehler 'tlsv1 alert unknown ca' in libmproxy?

Error: [('SSL routines', 'SSL3_READ_BYTES', 'tlsv1 alert unknown ca')] 

Ich glaube, das auf die Unfähigkeit verbunden ist, die Identität des CA, um zu überprüfen, dass die Seite verwendet für das Zertifikat bürgt. Ich denke, es sollte eine Einstellung geben, die ich aktivieren kann (oder aus), die eine Umgehung der Überprüfung ermöglicht - ich bin nicht daran interessiert, die Identität des digitalen Unterzeichners zu überprüfen.

Ich denke, dass eine mögliche, eine Art hässliche Lösung sein könnte, den Code zu patchen, um die Ausnahme zu fangen und es zu ignorieren, aber ich würde lieber eine sauberere und mehr unterstützte Möglichkeit haben, es zu tun.

Was ist eine gute Möglichkeit, dieses Problem zu vermeiden/zu lösen?

Vielen Dank!

+2

Ist Ihnen bewusst, dass die Verbindung aufgrund der Umgehung der Verifizierung anfällig für potenzielle MITM-Angriffe ist? – Bruno

+1

Ja. Dies ist eine inhärent unsichere Umgebung, und es ist "OK", in potenziell unsichere Situationen einzutreten. Danke für die heads-up, aber :) –

+1

Ich habe versucht, in diese zu graben, aber es ist nicht wirklich eine "in Python" -Frage - die Antwort wird spezifisch für die zugrunde liegenden Bibliotheken sein. Es sieht so aus, als ob libmproxy netlib benutzt, welches die openssl-Bibliothek benutzt, also müsste ich zuerst die openssl-Bibliothek anschauen und herausfinden, wie man dort die Validierung abstellt, dann ob netlib eine Möglichkeit hat, diese zu aktivieren, dann siehe libmproxy hat eine Möglichkeit zu aktivieren make netlib tun die Sache, die openssl nicht validiert das cert .. –

Antwort

2

Dies geschieht, wenn das ProxySG-Zertifikat, das dem Benutzer präsentiert wird, nicht von einer vertrauenswürdigen CA signiert ist.

Ich hatte auch diesen Fehler, ich reparierte es, indem ich die CA (die für ssl proxy verwendet) zum eigentlichen Browser, durch Gruppenrichtlinie.

+0

Hört sich so an, als ob es sich lohnen könnte. Können Sie näher erläutern, wie es geht und was diese Begriffe bedeuten? –

2

Scheint, dass Sie das Certutil verwenden können, wenn Sie Windows-Clients haben.

http://support.microsoft.com/kb/555252

Für Linux-Clients können Sie verwenden:

sudo mkdir /etc/share/certificates/extra && cp cacert.crt /user/share/certficates/extra/cacert.crt 
sudo dpkg-reconfigure ca-certificates 

Für Mac-Clients:

sudo security add-trusted-cert -d -r trustRoot -k \ 
"/Library/Keychains/System.keychain" \ 
"/private/tmp/certs/certname.cer" 

(bekam diese Antwort von https://apple.stackexchange.com/questions/80623/import-certificates-into-system-keychain-via-the-command-line)

Auch libmproxy Homepage lesen es scheint, dass es c laden kann ustom Zertifikate. Wenn Sie bereits eine interne Zertifizierungsstelle haben, der Ihre Kunden bereits vertrauen, möchten Sie vielleicht einfach Zertifikate von dort generieren.

Verwandte Themen