无效的数字证书

时间:2009-04-03 14:59:31

标签: c# .net ssl digital-certificate

我正在尝试将SSL添加到我的服务器,以便将客户详细信息发送给客户端。

它似乎正在服务器端工作,数字证书(.pfx)成功加载。

当我尝试与客户端连接时出现问题。抛出AuthenticationException,指出远程证书无效。证书是一个自签名的测试证书 - 这可能是问题吗?

如果没有,我就没有想法了!

编辑:证书位于MMC双方的受信任根证书文件夹中(服务器和客户端正在同一台计算机上运行以进行开发)。

3 个答案:

答案 0 :(得分:2)

我必须覆盖验证方法:

public static bool RemoteCertificateValidationCallback(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    return true;
}

显然,这将接受传递给它的每个证书,因此我需要使用证书的哈希或类似的东西进行检查。但是,现在是假期!

答案 1 :(得分:1)

这绝对是问题所在。您是否尝试将该Web服务器添加到客户端上受信任的根证书? 如果客户端不信任证书提供者(您的Web服务器,因为自签名),它将在尝试验证证书时抛出异常。

答案 2 :(得分:0)

您是如何生成证书的?

  • 默认情况下,makecert.exe将生成一个不适合使用ssl身份验证的证书。

  • 使用“-sky exhange”选项生成合适的选项。

makecert -n“CN = Client”-pe -ss My -sr CurrentUser -sky exchange client.cer makecert -n“CN = Host”-pe -ss My -sr LocalMachine -sky exchange host.cer