GNU/Linux >> Linux の 問題 >  >> Linux

Curl コマンドでクライアント証明書を使用する

これが私がやった方法です:

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

TLS クライアント証明書は HTTP ヘッダーで送信されません。これらは、TLS ハンドシェイクの一部としてクライアントによって送信されます 、通常、サーバーはハンドシェイク中にも証明書の有効性を確認します。

証明書が受け入れられた場合、ほとんどの Web サーバーは、証明書または証明書に含まれる情報をアプリケーションに送信するためのヘッダーを追加するように構成できます。環境変数には、ヘッダーを設定するための他のディレクティブで使用できる Apache および Nginx の証明書情報が取り込まれます。

このアプローチの例として、次の Nginx 構成スニペットはクライアント証明書を検証し、SSL_CLIENT_CERT を設定します。 ヘッダーを使用して、証明書全体をアプリケーションに渡します。これはのみ 証明書が正常に検証されたときに設定されるため、アプリケーションは証明書を解析し、そこに含まれる情報に依存できます。

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. socatを使用したTCPプロキシ

  2. 「?」を使用したコマンド置換

  3. Curl コマンド ライン ユーティリティを使用した並列ダウンロード

  1. コマンドを使用してPPKをPEMファイルに変換する方法

  2. cURL コマンドでの環境変数の使用 - Unix

  3. Curl:証明書の検証を無効にする

  1. scpコマンドを使用する10の実際的な例

  2. Linux での dmsetup コマンドの使用例

  3. mv コマンドを使用して Linux でフォルダーを移動する