Verwenden des Client-Zertifikats im Curl-Befehl

8

Curl-Befehl:

%Vor%

Ich versuche, ein Client-Zertifikat mit dem oben angegebenen Curl-Befehl zu senden. Ich versuche folgendes zu wissen:

  1. Was ist der HTTP-Anforderungsheader, den ich auf der Serverseite suchen sollte, um das Clientzertifikat aus der HTTP-Anforderung herauszuholen.

  2. Wenn ich das Clientzertifikat auf der Serverseite nicht aus der HTTP-Anforderung herausziehen kann, kann ich einen benutzerdefinierten Anforderungsheader in der HTTP-Anforderung hinzufügen und das Clientzertifikat als Wert dieses benutzerdefinierten Headers senden. Es wäre großartig, wenn mir jemand ein Beispiel für diesen Ansatz geben könnte.

sunsin1985 08.07.2015, 23:07
quelle

2 Antworten

12

TLS-Client-Zertifikate werden nicht in HTTP-Headern gesendet. Sie werden vom Client als Teil des TLS Handshakes übertragen, und der Server überprüft typischerweise auch die Gültigkeit des Zertifikats während des Handshakes.

Wenn das Zertifikat akzeptiert wird, können die meisten Webserver so konfiguriert werden, dass sie Header für die Übertragung des Zertifikats oder der Informationen auf dem Zertifikat zur Anwendung hinzufügen. Umgebungsvariablen werden mit Zertifikatsinformationen in Apache und Nginx , die in anderen Direktiven zum Setzen von Headern verwendet werden können.

Als ein Beispiel für diesen Ansatz wird das folgende Nginx-Konfigurations-Snippet ein Client-Zertifikat validieren und dann den Header SSL_CLIENT_CERT setzen, um das gesamte Zertifikat an die Anwendung zu übergeben. Dies wird nur festgelegt, wenn das Zertifikat erfolgreich validiert wurde. Daher kann die Anwendung das Zertifikat analysieren und sich auf die Informationen stützen, die es enthält.

%Vor%     
frasertweedale 09.07.2015, 01:44
quelle
10

So habe ich es gemacht:

%Vor%     
reachlin 23.08.2017 08:05
quelle