web-dev-qa-db-ja.com

SSLクライアント証明書でjQueryのajax()関数を使用する

JQueryのajax()関数を使用してRESTサービスにXHR呼び出しを行いたい。基本的にはこれで問題ないが、REST =サービスにはhttpsからのみアクセスでき、クライアントはクライアント証明書を使用して認証する必要があります。

JQueryのajax()関数を使用してクライアント証明書を送信するにはどうすればよいですか?

12
Golo Roden

リクエストのソースとターゲットが同じドメインにあり、httpsを使用している場合はssl ajax呼び出しを行うことができます: Securing AJAX&SSL 。ただし、 ajax呼び出し内のssl認証。

3
Simon

クライアント証明書の認証は、HTTP層とJavaScript層に関する限り、(a)サーバーからの要求があった場合にのみ実行され、(b)ブラウザーによって透過的に実行されます。

サーバーがクライアント証明書を要求すると(HTTP要求の後に再ネゴシエーションが必要になる場合があります)、ブラウザーは、証明書を選択するためのポップアップを提供する必要があります(ブラウザーに依存し、JavaScriptまたはHTMLの制御下にはありません)。設定に応じて自動的に1つ。

そのため、クライアント証明書について何もするのはjQueryのajax()関数次第ではありません。

AJAX呼び出し中に最初に発生した場合にのみ、ブラウザーがクライアント証明書選択ポップアップをトリガーするかどうかはわかりません(これはおそらくただし、クライアント証明書の選択がすでに行われている場合(または選択が自動である場合)、ブラウザーは他の通常の要求の場合と同様に、認証にそれを使用します。

11
Bruno