GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden des Client-Zertifikats im Curl-Befehl

So habe ich es gemacht:

curl -v \
  --key ./admin-key.pem \
  --cert ./admin.pem \
  https://xxxx/api/v1/

TLS-Clientzertifikate werden nicht in HTTP-Headern gesendet. Sie werden vom Client im Rahmen des TLS Handshake übermittelt , und der Server überprüft normalerweise auch die Gültigkeit des Zertifikats während des Handshakes.

Wenn das Zertifikat akzeptiert wird, können die meisten Webserver so konfiguriert werden, dass Header hinzugefügt werden, um das Zertifikat oder die auf dem Zertifikat enthaltenen Informationen an die Anwendung zu übertragen. Umgebungsvariablen werden in Apache und Nginx mit Zertifikatsinformationen gefüllt, die in anderen Anweisungen zum Setzen von Headern verwendet werden können.

Als Beispiel für diesen Ansatz validiert das folgende Nginx-Konfigurations-Snippet ein Client-Zertifikat und legt dann den SSL_CLIENT_CERT fest Header, um das gesamte Zertifikat an die Anwendung zu übergeben. Dies wird nur festgelegt werden, wenn das Zertifikat erfolgreich validiert wurde, sodass die Anwendung das Zertifikat analysieren und sich auf die darin enthaltenen Informationen verlassen kann.

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/chainedcert.pem;  # server certificate
    ssl_certificate_key /path/to/key;          # server key

    ssl_client_certificate /path/to/ca.pem;    # client CA
    ssl_verify_client on;
    proxy_set_header SSL_CLIENT_CERT $ssl_client_cert;

    location / {
        proxy_pass http://localhost:3000;
    }
}

Linux
  1. TCP-Proxying mit socat

  2. Befehlsersetzung mit „?

  3. 10 praktische Beispiele für die Verwendung des scp-Befehls

  4. Verschieben Sie einen Ordner in Linux mit dem Befehl mv

  5. Verwenden von curl zum Senden von E-Mails

Beispiele für Linux-Curl-Befehle – Teil 1

Curl-Befehl in Linux mit Beispielen

Der Linux-Curl-Befehl

Verwenden des Watch-Befehls unter Linux

CURL-Linux-Befehl:Lernen am Beispiel

Cut auf Linux Terminal verwenden