So erstellen Sie ein dual-Authentifizierung HTTPS-client in Python ohne (L)GPL-libs?
Sowohl die client-und die server sind intern, jeder hat ein Zertifikat von der internen CA und den CA-Zertifikat. Ich Brauch den client zur Authentifizierung des server-Zertifikats mit dem CA-Zertifikat hat. Es sollte auch senden Sie Ihr Zertifikat auf dem server für die Authentifizierung.
Den urllib2 Handbuch sagt, dass die server-Authentifizierung nicht durchgeführt. PycURL ist eine Natürliche alternative, aber die Lizenz ist noch nicht genehmigt. Ich würde auch lieber nicht mit zu kompilieren Sie die Bibliothek aus dem Quellcode, sondern auf RPM statt.
Ging ich über eine Reihe von Bibliotheken, wie Anfragen, httplib2 und nicht sehen, was ich brauche. Es gibt auch die ssl Modul, aber ich habe nicht das Gefühl, wie die Implementierung von http -, wenn ich nicht absolut muss.
Python 2.6 auf RHEL 5.7
- Ich bin vor fast ähnliches problem und ich löse es, indem Apache tun alle SSL-lifting
- mein problem ist, auf der client-Seite, die ein Python-Dienstprogramm
- Aha. Sorry, hab nicht bekommen, dass auf das erste mal 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
gut, der Gewinner (fast) ist httplib2 v0.7. Ab dieser version unterstützt SSL-Zertifikat-Authentifizierung. Hier ist der Beispielcode
Hinweis: die
domain=''
parameter, es hat nicht funktioniert für mich anders.PS. leider ist diese einfache Lösung nicht funktioniert für mich, wie ich vergaß zu erwähnen, dass der zusätzliche Bedarf - mit RPM-installation für RHEL 5.7 & Python 2.6.
Twisted Python ist eine Bibliothek, die tun können, was Sie brauchen, obwohl ich nicht sicher bin, ob das MIT der Lizenz passt, was Sie wollen. Die GPL ist eine ziemlich spezifische Lizenz und hoffentlich nicht bedeutet, dass "alle open-source-Lizenzen."
Für SSL-Beispiele finden Sie unter http://twistedmatrix.com/documents/current/core/howto/ssl.html. Die letzten beiden Beispiele auf dieser Seite sind von besonderer Bedeutung, basiert auf Ihrer Beschreibung. Twisted verwendet PyOpenSSL ( docs ), die lizenziert ist mit der Apache-Lizenz. Sie sollten erwägen, mit PyOpenSSL-direkt als gut.
httplib2
aussieht geeignet und einfach. Ich werde zu aktualisieren, hier, wie es gelaufen istUpdate: Wenn Anfragen hat nicht die Unterstützung der client-side-Zertifikate vor, es unterstützt jetzt, sofern die lokalen cert privaten Schlüssel (falls vorhanden) ist unverschlüsselt: