C# .net1.1 HttpWebRequest身份验证,使用文件中的x509证书

C# .net1.1 HttpWebRequest身份验证,使用文件中的x509证书,c#,asp.net,.net,ssl,C#,Asp.net,.net,Ssl,我有一个完整路径的证书,带有ca、私有部分和名为client.p12的密码。Ca证书是自签名的 我需要我的HttpWebRequest使用此证书进行身份验证 我在尝试类似的东西 Cert = X509Certificate.CreateFromCertFile("...."); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.ClientCertificates.Add(Cert); 但若文件是p12或pfx,我

我有一个完整路径的证书,带有ca、私有部分和名为client.p12的密码。Ca证书是自签名的

我需要我的HttpWebRequest使用此证书进行身份验证

我在尝试类似的东西

Cert = X509Certificate.CreateFromCertFile("....");
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.ClientCertificates.Add(Cert);
但若文件是p12或pfx,我得到的错误是无法从文件中加载证书

我将此证书导入windows cryptoapi并尝试使用不带密码的专用部分导出我的net1.1 X509证书无法使用密码加载-没有此类重载方法,但不能,此选项处于非活动状态

我导出为.cer文件,现在证书加载到X509Certificate类中,我希望添加到httpwebrequest,但它返回无法启动ssl会话-我想证书是错误的

如何解决这个问题

是否可以创建没有密码但带有私有部分的良好.cer证书,以便使用CreateFromCertFile?openssl可能是,或者其他什么

是在.net1.1应用程序中使用.p12、.pfx文件而不是CreateFromCertFile的另一种方法吗?某些第三方组件可能是


对.NET1.1的主流支持在2008年结束;维护1.1应用程序将是。。。越来越困难。特别是,任何示例等都可能使用您无法使用的功能。我祝你好运,但谦恭地提交:这可能是时间早就应该了,事实上,升级几个版本…我相信-你是对的。但我真的很害怕升级这个生锈的应用程序。如果有东西坏了,我不确定我能修好。我希望在不升级的情况下有某种方法可以解决这个问题。例如,您可以使用web调试器、Fiddler,并实际检查证书是否已添加到请求中。此外,此分析还可以为您提供一些错误提示。严格来说,证书不包含私钥。p12文件包含这两个部分。X509Certificate2将是要使用的类,因为它可以关联私钥。不幸的是,它在.NET1.1中不可用。.cer文件中的内容只是cert.@PetrAbdulin,一个MITM代理。我的意思是,SSL连接将使用客户端证书使连接失败,因为服务器将无法获得正确的TLS CertificateVerify消息。