我写了一个小型控制台应用程序,使用客户端证书向服务器发起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不能胜任这项工作?