[解決済み] クライアントから送信されたTLS証明書をサーバー側で読み込むには?
質問
Curlコマンドを使用して、相互TLSでサービスを呼び出そうとしています。
Curlコマンドを使用しています。
curl -k -vvvv \
--request POST \
--header "Content-Type: application/json" \
--cert client.pem:password \
--key key.pem \
"https://test.com:8443/testing"
私は以下のことを調べようとしています。
-
HTTP リクエストからクライアント証明書を引き出すために、サーバー側で見るべき HTTP リクエスト ヘッダーは何でしょうか。
-
HTTP リクエストからサーバー側でクライアント証明書を引き出すことができない場合、HTTP リクエストにカスタム リクエスト ヘッダーを追加し、そのカスタム ヘッダーの値としてクライアント証明書を送信することは可能ですか? 誰かがこのアプローチの例を提供してくれると助かります。
どのように解決するのですか?
相互TLSを使用する場合、クライアントがTLS証明書を送信します。
相互 TLS ハンドシェイクでは、TLS クライアント証明書は HTTP ヘッダで送信されません。 それらは、ハンドシェイク中に交換される TLS メッセージの一部としてクライアントによって送信され、サーバーはハンドシェイク中にクライアント証明書を検証します。 大まかに言って、mTLS のハンドシェイクには 2 つの部分があり、クライアントはサーバー証明書を検証して受け入れ、サーバーはクライアント証明書を検証して受け入れます。
クライアント証明書が受け入れられた場合、ほとんどの 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のisoイメージを作る方法(グラフィックチュートリアル)
-
LinuxでSteamをダウンロードしインストールする方法
-
rsyncとinotfiyの組み合わせでリアルタイムバックアップ問題を実現
-
LinuxでJenkinsプラグインのインストールが遅い場合の解決策
-
[解決済み] gzip: stdin: gzip 形式ではありません tar: 子プロセスはステータス 1 を返しました。エラーは回復不可能: 現在終了中
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] YouTube APIからYouTubeビデオのサムネイルを取得する方法を教えてください。
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] OpenSSLを使用して自己署名入りSSL証明書を生成する方法を教えてください。
-
[解決済み] 自己署名入りの証明書をgitに受け入れさせるにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ゼロからLinuxのisoイメージを作る方法(グラフィックチュートリアル)
-
centos7 インストール クリックハウスとセット ユーザー名 パスワード ケース 詳細
-
deepinシステムからログアウトする方法は?deepinシステムからログアウトし、ユーザーを切り替える方法
-
[解決済み] IOCTL Linuxデバイスドライバ [終了しました]
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] ディレクトリへのシンボリックリンクを削除する
-
[解決済み] Linuxで特定のポートで動作しているプロセスを停止させる方法は?
-
[解決済み] ls を使用してディレクトリとその合計サイズを一覧表示する
-
[解決済み] Linux/Unixで$PATHを永久に設定する方法 [終了しました].