0

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

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

当我尝试与客户端连接时,问题就来了。抛出 AuthenticationException 说明远程证书无效。该证书是自签名测试证书 - 这可能是问题吗?

如果没有,我没有想法!

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

4

3 回答 3

2

我不得不重写验证方法:

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

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

于 2009-04-03T16:06:30.517 回答
1

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

于 2009-04-03T15:06:04.330 回答
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

于 2009-04-03T16:04:53.860 回答