我正在测试以下链接中给出的示例。
https://msdn.microsoft.com/en-us/library/system.net.security.sslstream.aspx
要生成证书,我使用的是具有40个用户答案SSLStream example - how do I get certificates that work?
的证书要运行服务器,我正在使用命令 SslTcpServer.exe TempCert.cer
以下是msdn中我遇到问题的代码。
public static int Main(string[] args)
{
string serverCertificateName = null;
string machineName = null;
if (args == null ||args.Length <1 )
{
DisplayUsage();
}
// User can specify the machine name and server name.
// Server name must match the name on the server's certificate.
machineName = args[0];
if (args.Length <2 )
{
serverCertificateName = machineName;
}
else
{
serverCertificateName = args[1];
}
SslTcpClient.RunClient (machineName, serverCertificateName);
return 0;
}
调用X509Certificate.CreateFromCertFile时出现以下错误: System.Security.Cryptography.CryptographicException:'系统找不到指定的文件。
public static void RunServer(string certificate)
{
serverCertificate = X509Certificate.CreateFromCertFile(certificate);
// Create a TCP/IP (IPv4) socket and listen for incoming connections.
//serverCertificate = new X509Certificate2(certificate,"");
}
serverCertificateName作为参数传递,它应该只是证书的名称,还是应该给出证书的完整路径?
如果我提供证书的路径,它工作正常。那么在商店中安装证书有什么意义?如何从商店获取并使用它?
答案 0 :(得分:0)
以下是一些代码,它们将返回已安装证书支持的主机名列表(这比您想要的要多一些,但应指向正确的方向):
<slide-out-div class="contrastBoxDark">...</slide-out-div>