【发布时间】:2016-06-08 18:50:42
【问题描述】:
使用 c# 通过 SSL 与 SslStream 进行通信。我正在使用自己生成的证书并导入到带有 certlm.msc 的 Windows 证书存储中。我在 SslStream.AuthenticateAsServer() 上收到以下异常“无法识别提供给包的凭据”。
它似乎工作了一会儿,但随后就停止了。这很令人沮丧。我在这里阅读了很多文章,但没有找到我需要重新创建证书并导入它们的解决方案。我创建了这样的证书:
-
创建了一个 CA:
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makecert.exe" ^ -n "CN=CARoot" -r -pe -a sha512 -len 4096 -cy 权限 -sv CARoot.pvk ^ -ss -sr CARoot.cer
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\pvk2pfx.exe" ^ -pvk CARoot.pvk -spc CARoot.cer -pfx CARoot.pfx -po Test123
-
创建服务器证书:
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makecert.exe" ^ -n "CN=%1" -iv CARoot.pvk -ic CARoot.cer -pe -a sha512 -len 4096 ^ -sky exchange -eku 1.3.6.1.5.5.7.3.1 -sv SslServer.pvk SslServer.cer
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\pvk2pfx.exe" ^ -pvk SslServer.pvk -spc SslServer.cer -pfx SslServer.pfx ^ -po Test123
-
创建客户端证书:
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makecert.exe" ^ -n "CN=%1" -iv CARoot.pvk -ic CARoot.cer -pe -a sha512 ^ -len 4096 -sky 交换 -eku 1.3.6.1.5.5.7.3.2 -sv SslClient.pvk ^ SslClient.cer
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\pvk2pfx.exe" ^ -pvk SslClient.pvk -spc SslClient.cer -pfx SslClient.pfx -po Test123
我基本上使用 MSDN 中的示例代码,并将 SslServer 和 SslClient 都放在我的 lmhosts 文件中以便它们解析。
注意 - 在证书管理器中,当我单击它们时,它们会说“您有一个与此证书对应的私钥”。
【问题讨论】: