4

クライアント証明書を使用してサーバーへの 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証明書がインストールされている場合にのみ機能します。

私の理解では、クライアント証明書は認証のみに使用され、暗号化には使用されませんよね? そう、

  1. 証明書をインストールする必要があるのはなぜですか? 私のプログラムがその場所から .cer ファイルを取得して、要求と共に送信できないのはなぜですか? と、

  2. 繰り返しますが、より具体的には、なぜ.pfx証明書をインストールする必要があるのでしょうか? .cerが機能しないのはなぜですか?

4

1 に答える 1

1

.cer ファイルには証明書が含まれています。証明書には公開鍵が含まれています。証明書による識別には、(公開) 証明書の公開鍵と一致する秘密の秘密鍵を所有していることを示すための暗号化操作が含まれます。この秘密鍵は .pfx ファイルに含まれています。

于 2014-08-12T05:36:17.197 に答える