我正在尝试将SSL添加到我的服务器,以便将客户详细信息发送给客户端。
它似乎正在服务器端工作,数字证书(.pfx)成功加载。
当我尝试与客户端连接时出现问题。抛出AuthenticationException,指出远程证书无效。证书是一个自签名的测试证书 - 这可能是问题吗?
如果没有,我就没有想法了!
编辑:证书位于MMC双方的受信任根证书文件夹中(服务器和客户端正在同一台计算机上运行以进行开发)。
答案 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