我编写了一个小型控制台应用程序来使用客户端证书对服务器进行 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();
但是,除非您将证书安装在证书管理器中当前用户的个人文件夹中,否则此代码不起作用。更具体地说,它仅在我安装了.pfx证书时才有效,而不是.cer
据我了解,客户端证书仅用于身份验证而不用于加密,对吗?所以,
为什么我们需要安装证书?为什么我的程序不能从该位置选择 .cer 文件并将其与请求一起发送?和,
同样,更具体地说,为什么我们需要安装.pfx证书?为什么.cer不做这项工作?