【发布时间】:2013-07-24 07:56:55
【问题描述】:
我正在尝试了解 SSL 通信的奥秘,并在 this site 上找到了一个很棒的教程。我试图测试我自己的证书。使用 Visual Studio 2012,我只是添加了一个现有文件(我的 .pfx 格式的证书),然后更改了 app.config 中的“证书”和“密码”设置。但是,当我尝试运行它时,我得到了一个错误:
CryptographicException 未处理:系统找不到指定的文件
然后,我在我的 Web 服务中尝试了同样的方法。在那里我得到了有关该错误的更多详细信息:
System.Security.Cryptography.CryptographicException: System cannot find specified file.
at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
at System.Security.Cryptography.X509Certificates.X509Utils._QueryCertFileType(String fileName)
at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
v System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password)
v TestServer.DataService.LoadSoap() v c:\Users\Administrator\Documents\Visual Studio 2012\Projects\TestServer\TestServer\DataService.asmx.cs:line 48
我已经把这个问题写给了文章的作者,但是由于他上次回复是在2012年3月,我不确定他是否会回复。如果有人能帮我解决这个问题,我将不胜感激。
P.S.:将证书从 .cer 导出到 .pfx 时,我更改了导出文件的标题。虽然我怀疑它对问题的影响,但我宁愿提一下。
【问题讨论】:
-
您是否指定了文件的完整路径名?
-
哇...现在我觉得自己像个彻头彻尾的白痴。指定完整路径后,它可以工作......好吧,客户说,证书无效,但这可能是因为它是为我的旧计算机颁发的。所以,谢谢......我认为,这个话题可以作为非建设性的结束。
-
对于 Azure 应用服务中的相同问题 - Certenroll on Azure - Generating self signed certificates
标签: c# .net x509certificate cryptographicexception