2-Wege-SSL mit CherryPy

8

Ab CherryPy 3.0 kann unidirektionales SSL einfach durch Zeigen auf das Server-Zertifikat und den privaten Schlüssel wie folgt aktiviert werden:

%Vor%

Dies ermöglicht Clients, die Authentizität des Servers zu überprüfen. Weiß jemand, ob CherryPy 2-Wege-SSL unterstützt, z. Wo kann der Server auch die Client-Authentizität durch Validierung eines Client-Zertifikats überprüfen?

Wenn ja, könnte jemand ein Beispiel geben, wie wird das gemacht? Oder einen Verweis auf ein Beispiel veröffentlichen?

    
tpj 13.12.2010, 09:49
quelle

3 Antworten

4

Es ist nicht out of the box. Sie müssten den wsgiserver patchen, um diese Funktion bereitzustellen. Unter Ссылка gibt es ein Ticket (und Patches).

    
fumanchu 13.12.2010, 18:02
quelle
3

Ich habe nach dem gleichen gesucht. Ich weiß, dass es einige Patches auf der CherryPy-Site gibt.

Ich fand auch Folgendes bei der CherryPy SSL-Client-Authentifizierung . Ich habe dies nicht mit den CherryPy-Patches verglichen, aber die Informationen werden vielleicht hilfreich sein.

  

Wir mussten vor kurzem ein schnelles entwickeln   aber resiliente REST-Anwendung und   festgestellt, dass CherryPy unseren Bedürfnissen entsprach   besser als andere Python-Netzwerke   Frameworks, wie Twisted.   Leider fehlte seiner Einfachheit ein   Schlüsselfeature, die wir brauchten, Server / Client   SSL-Zertifikat-Validierung Deshalb   Wir haben ein paar Stunden damit verbracht, ein paar zu schreiben   schnelle Änderungen an der aktuellen   Veröffentlichung, 3.1.2. Der folgende Code   Schnipsel sind die Modifikationen, die wir machen   gemacht:

%Vor%
  

Die obigen Patches erfordern die   Aufnahme einer neuen Konfiguration   Option innerhalb des CherryPy-Servers   Aufbau,   server.ssl_ca_certificate. Dies   Option identifiziert das Zertifikat   Berechtigungsdatei, die Clients verbindet   wird gegen validiert, wenn die   Client zeigt keinen gültigen Client an   Zertifikat wird es schließen   Verbindung sofort.

     

Unsere Lösung hat Vorteile und   Nachteile, der Hauptvorteil   wenn der verbindende Client dies nicht tut   ein gültiges Zertifikat vorlegen   Die Verbindung ist sofort geschlossen.   Dies ist gut für Sicherheitsfragen wie   es erlaubt dem Kunden nichts   Zugriff auf die CherryPy-Anwendung   Stapel. Seit der Einschränkung   ist auf der Socket-Ebene der getan   CherryPy Anwendung kann nie sehen   Client verbinden und damit die   Lösung ist etwas unflexibel.

     

Eine optimale Lösung würde das ermöglichen   Client, um eine Verbindung zum CherryPy herzustellen   Socket und senden Sie das Client-Zertifikat   in den Anwendungsstapel. Dann ein   Das benutzerdefinierte CherryPy-Tool würde validiert   das Zertifikat in der   Anwendungsstapel und schließen Sie die   Verbindung bei Bedarf; Unglücklicherweise   wegen der Struktur von CherryPy's   pyOpenSSL-Implementierung ist es   schwierig, den Kunden zu finden   Zertifikat innerhalb der Anwendung   Stapel.

     

Natürlich sollten die obigen Patches   nur auf eigene Gefahr verwendet werden. Wenn du   eine bessere Lösung finden Sie bitte   lass es uns wissen.

    
Dana Holt 14.01.2011 17:22
quelle
0

Wenn die aktuelle Version von CherryPy die Überprüfung von Clientzertifikaten nicht unterstützt, ist es möglich, CherryPy so zu konfigurieren, dass 127.0.0.1:80 gehört wird, HAProxy installiert wird, um 443 zu hören und clientseitige Zertifikate zu prüfen und Datenverkehr an 127.0.0.1 weiterzuleiten : 80 HAProxy ist einfach, leicht, schnell und zuverlässig. Ein Beispiel für die HAProxy-Konfiguration

    
Daniel Nuriyev 07.05.2017 18:24
quelle