我知道在stackoverflow上有很多与相同主题相关的问题,但这里我有一些不同的问题:
我在win7/Winxp
上使用了reserve a port
和bind it with hash
的installer class
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
没有任何问题。除了以下几点之外,一切都很正常:
win7
上安装exe
时,它都会成功运行WCF
the服务。WinXP(SP#)
时,它都会抛出一个错误:错误107 (net::ERR_SSL_PROTOCOL_ERROR):SSL协议错误
WinXp
虚拟机时,它运行SSL怎么可能,我试了好几次,结果都是一样的。它是在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."
发布于 2013-06-15 01:08:36
本地XP计算机的配置可能与虚拟计算机的配置不同。我能想到的一种情况是,IT部门会以一种方式配置XP机器,然后您自己创建一个虚拟机,它只是使用默认设置(不同)。我并不是说这是你的特定场景,只是一个场景。另一个原因是机器过时/未更新,这与其说是配置问题,不如说是bug的存在。
无论如何,我会说是your installation of XP is incorrectly determining that the certificate is invalid,这是VM所不具备的特性。你对防火墙设置的评论也可能是准确的--试试谷歌。
祝好运!
发布于 2013-07-23 00:07:53
这可能看起来很愚蠢,但一些应用程序可以使用SSL端口,如Team Viewer甚至Skype。尝试关闭这些应用程序,以防您的计算机上正在运行其中一些应用程序!
对不起,这只是一个猜测:),但我希望它能有所帮助...
发布于 2014-08-29 20:26:09
执行以下SetUp操作以调用您的WCF服务
ServicePointManager.ServerCertificateValidationCallback =
delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
有关详细信息,请参阅:Using a self-signed certificate with .NET's HttpWebRequest/Response
https://stackoverflow.com/questions/16129151
复制相似问题