gpt4 book ai didi

.NET SNI 支持

转载 作者:太空宇宙 更新时间:2023-11-03 13:26:44 26 4
gpt4 key购买 nike

我有一个 Web 服务 (asmx) API,它是由我管理的另一位开发人员用 .NET 3.5 编写的。我们最近从 Server 2008R2 迁移到 Server 2012R2,我决定使用 SNI 而不是为每个证书分配一个 IP。

事实证明,我们的一位 API 用户在切换到 SNI 后无法再连接到我们的 API。我发现他们使用 Server 2003,我认为这是它不再工作的原因。我继续为该站点分配了一个解决问题的公共(public) ip。当然,他们将其完全归咎于 .NET 框架。

他们的证明是这个链接: https://connect.microsoft.com/VisualStudio/feedback/details/729925/net-4-4-5-sslstream-no-supports-the-tls-server-name-indication-sni

我有一个连接到我们的 API 并运行各种测试的测试项目设置,它在转换后工作正常。

任何人都可以阐明这一点吗? SoapHttpClientProtocol 是否使用 sslstream?

最佳答案

.NET Framework 本身如果依赖于 Schannel 可能无法解决问题。 Schannel 自 Windows Vista/Windows Server 2008 后才开始支持 SNI (或来自其他来源 Windows 8/Windows Server 2012 )

好吧,根据第一个链接,SslStream 确实依赖于 Schannel。我刚刚在 Windows 7/.NET 4 和 Windows 8.1/.NET 4.5.1 上完成了一个测试用例,我可以看到客户端应用程序利用 SslStream SNI 按预期工作。所以我认为您粘贴的 Microsoft Connect 链接根本不是有效链接。 SNI 在 Windows XP 和 Windows Server 2003 上可能会失败,但应该适用于 Windows Vista 及更高版本。

我没有检查 SoapHttpClientProtocol 的源代码,但我不认为 Microsoft 使用了 SslStream 或 Schannel 以外的任何东西。

所以在你的情况下,我建议你在服务器端回滚你的更改并且不要使用 SNI。另一种解决方案是要求所有用户使用 Windows Vista 及更高版本作为操作系统。请注意,Windows XP 已经死了,Windows Server 2003 也快死了(明年会死,很快)。

关于.NET SNI 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26171425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com