IIS クライアント証明書認証はローカルでは機能するがリモートでは機能しない

IIS クライアント証明書認証はローカルでは機能するがリモートでは機能しない

私はIISエンドポイントでクライアント証明書認証を設定しようとしています。次のチュートリアルに従ってください。https://joji.me/en-us/blog/how-to-create-an-iis-website-that-requires-client-certificate-using-self-signed-certificates/ ルート証明書を作成し、そのルート証明書からサーバー証明書とクライアント証明書を作成しました。

私のサーバー (Windows 2012 R2、IIS 8.5 を使用) では、ルート証明書を信頼されたルート証明書ストアにインストールし、クライアント証明書を現在のユーザーの個人用ストアにインストールすると、エンドポイントを参照できることがわかります。アドレス (https://localhost/foobar/endpointName) を入力すると、選択できるクライアント証明書の一覧が表示され、正しい証明書を選択するとエンドポイントに到達します。

リモートでは話は別です。ユーザーの個人ストアに同じクライアント証明書がインストールされている別のマシンから試すと、選択できるクライアント証明書のリストは表示されず、単に 403 Unauthorized エラーが表示されます。この場合、URL は次のようになります。https://serverCertName.domain.com/foobar/endpointNameここで、serverCertName.domain.com には適切な A レコードがあります。また、証明書を具体的にロードできる IE でもこれを試しましたが、同じ結果になりました。アクセスしようとしているサーバーの IIS ログでは、これらの試行は 403.7 として記録されます。

また、HttpClient (C#) を使用してリモート サーバーのコードからこれを試してみましたが、そこでも Unauthorized が返されました。ローカル要求とリモート要求の違いは何なのかを考えながら、画面を長い間見つめていましたが、今回はインターネット検索のスキルが足りませんでした。

答え1

ついに答えが見つかりました。アクセスしようとしていたエンドポイントがロード バランサーの背後にあることに気付いていませんでしたが、実際はそうでした。それが問題の原因でした。

関連情報