获取错误107(net :: ERR_SSL_PROTOCOL_ERROR):SSL协议错误

时间:2013-04-21 08:05:04

标签: c# visual-studio-2010 ssl windows-xp httpcfg.exe

我知道在stackoverflow上有很多与相同主题相关的问题,但在这里我有一些不同的问题:

我在installer class上使用了reserve a portbind it with hashwin7/Winxp

if (Environment.OSVersion.Version.Major > 5)
{
    startInfo.Arguments = @"/c netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE";
    netsh http add sslcert ipport=127.0.0.1:8083 certhash=df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 appid={00112233-4455-6677-8899-CCBBCCDDEEFF} clientcertnegotiation=enable;
}
else
{
    startInfo.Arguments = @"/c httpcfg set urlacl /u https://127.0.0.1:8083/";
    httpcfg set ssl -i 127.0.0.1:8083 -h df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 -f 2
}

代码和setup project没有任何问题。一切正常,除了以下几点:

  • 每当我在exe上安装win7时,它都会成功运行WCF网络服务。
  • 每当我在本地计算机上使用WinXP(SP#)时,都会抛出错误:

    错误107(net :: ERR_SSL_PROTOCOL_ERROR):SSL协议错误

  • 但是当我使用teamviewer登录任何WinXp虚拟机时,它会成功运行。

怎么可能,我试了好几次但得到了同样的结果。它运行在Xp(在VM上运行)但不在真正的XP机器上运行?

我是否写错了绑定并保留端口?防火墙在这里起作用吗?

我还用httpcfg query ssl确认了它,并且哈希与端口成功绑定。

任何帮助都会很明显。

IMO此命令不起作用:netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE

我试图找出fiddler的错误,并说:

"Failed to secure existing conection for <ipaddress>.  Authentication failed because the remote party has closed the transport stream."

3 个答案:

答案 0 :(得分:1)

本地XP计算机的配置可能与虚拟计算机的配置不同。我能想到的一个场景是,IT部门会以一种方式配置XP机器,然后您自己创建一个虚拟机,它只使用默认设置(不同)。我并不是说这是你的场景,只是一个场景。另一个是机器已经过时/未更新,这不是配置问题,而是存在错误。

无论如何,我会说your installation of XP is incorrectly determining that the certificate is invalid,这是VM不分享的追逐者。您对防火墙设置的评论也可能是准确的 - 请尝试Google。

祝你好运!

答案 1 :(得分:0)

这可能看起来很愚蠢,但有些应用可能会使用像Team Viewer甚至Skype这样的SSL端口。尝试关闭此应用程序,以防您在计算机上运行其中一些应用程序!

抱歉,这只是一个猜测:)但我希望它有所帮助...

答案 2 :(得分:0)

执行以下SetUp berfoe调用您的WCF服务

ServicePointManager.ServerCertificateValidationCallback =
            delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

更多详情请参考: Using a self-signed certificate with .NET's HttpWebRequest/Response