クライアント証明書を使用してサーバーへの HTTP 呼び出しを行う小さなコンソール アプリケーションを作成しました。私が書いたコードは、特定の場所から .cer ファイルを読み取り、要求を行います。
X509Certificate Cert = X509Certificate.CreateFromCertFile("JohnDoe.cer");
HttpWebRequest Request = (HttpWebRequest)
WebRequest.Create("https://10.135.12.166:4434");
Request.ClientCertificates.Add(Cert);
Request.UserAgent = "Client Cert Sample";
Request.Method = "GET";
HttpWebResponse Response = (HttpWebResponse) Request.GetResponse();
ただし、証明書マネージャー内の現在のユーザーの個人用フォルダーに証明書がインストールされていない限り、このコードは機能しません。より具体的には、 .cerではなく.pfx証明書がインストールされている場合にのみ機能します。
私の理解では、クライアント証明書は認証のみに使用され、暗号化には使用されませんよね? そう、
証明書をインストールする必要があるのはなぜですか? 私のプログラムがその場所から .cer ファイルを取得して、要求と共に送信できないのはなぜですか? と、
繰り返しますが、より具体的には、なぜ.pfx証明書をインストールする必要があるのでしょうか? .cerが機能しないのはなぜですか?