IOS 10.3.3不使用SSL和IIS重写规则

时间:2018-03-06 22:24:53

标签: ios ssl ipad iis url-rewriting

我有一个非常具体的问题,我希望其他人遇到过这个问题。它只发生在iOS 10.3.3的iPad上。 我们在Windows Server 2016上的IIS中有一个ColdFusion网站,拒绝加载任何带有iOS 10.3.3的iPad。当您尝试在Safari中打开网站时,它会旋转大约一分钟然后说“#34; Safari无法打开页面,因为服务器停止响应"。

在IIS中,我们有一个URL重写规则,类似于以下内容:

<rule name="All files and directories that don't exist" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*/*" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_FILENAME}" pattern="*CFIDE*" negate="true" />
    </conditions>
    <serverVariables>
        <set name="NEW_SCRIPT_NAME" value="{R:0}" />
    </serverVariables>
    <action type="Rewrite" url="{R:2}?sub={R:1}" appendQueryString="true" logRewrittenUrl="false" />
</rule>

如果我访问Chrome上的页面(再次使用相同的iPad),则会出现同样的问题。

如果我使用HTTP而不是HTTPS访问iPad上的页面,则重写规则将按预期工作并且页面呈现。

如果我禁用重写规则并访问iPad上的页面,页面呈现就好了。

如果我在不同的iPad上使用较新(或较旧)的iOS版本(例如5.1.1)访问该页面,则该页面呈现得很好。

我们在任何其他设备或浏览器上都没有任何问题。所有其他设备(Android,Windows等)在我们测试的所有浏览器上都按预期工作。

如果我查看IIS和ColdFusion日志,我可以看到请求来自iPad,并且它几乎就像设备被某个重定向循环捕获,因为日志显示正在请求的同一页面连续数百次。我们还尝试从不同的提供商处获得不同的SSL证书,它也没有任何区别。

所以基本上,它似乎是3个元素的组合:SSL,IIS重写Windows Server 2016和iOS 10.3.3。消除或更改这3个元素中的任何一个都允许页面在我们的iPad上呈现,但遗憾的是,消除或更改这3个元素中的任何一个对我们的情况都是不可行的。 iOS 10.3.3是我们拥有的iPad的最新版本。

对于上下文,我们拥有的旧iPad之一是在iOS 5.1.1上,它可以很好地呈现页面。

更新:我们尝试了另一台安装了Windows Server 2012和IIS 6.2的服务器,它在iPad上按预期工作,因此Windows Server 2016也是其中一个变量。

另一个更新:使用在线浏览器模拟器,看起来问题出现在iOS 9.1到10.3上,而iOS&lt; = 8.4和&gt; = 11.0没有问题。 Windows Server 2016和IIS 10.0中的问题很明显,其中配置并触发了URL重写规则。

2 个答案:

答案 0 :(得分:1)

在挖掘和挖掘之后,我发现这是与IIS10和http / 2相关的已知问题。 Adobe和微软都参与其中,微软应该在2018年4月发布修复程序。短期修复是禁用http / 2。我们的托管服务提供商还建议安装BonCode连接器作为修复程序。

请注意,这不仅会影响网址重写,还会影响默认文档设置。

https://tracker.adobe.com/#/view/CF-4198446

<强>更新 这是作为KB4093120

的一部分修复的

https://support.microsoft.com/en-us/help/4093120/windows-10-update-kb4093120

答案 1 :(得分:0)

我不知道为什么。该修补程序无法解决我的问题(Windows Server 2016上的IIS 10)。最后,我需要在IIS中关闭http2。我在博客上写下了经验

http://dbwizard.blogspot.com/2020/10/iis-connects-to-tomcat-https-bug-in-iis.html