Ios AVPlayer URL https连接与ATS阻止的明文HTTP

Ios AVPlayer URL https连接与ATS阻止的明文HTTP,ios,ssl,https,avplayer,tls1.2,Ios,Ssl,Https,Avplayer,Tls1.2,大家好, 我试图通过HTTPS连接到远程流媒体服务器,但控制台一直告诉我ATS阻止了明文HTTP 由于远程服务器是第三方服务器,因此我连接了OpenSSL并看到以下信息: 我玩了plist,尝试了不同的方法,但仍然无法连接(如果我绕过了ATS的URL,那么就完美地打开流) 这是我的实际配置: 有什么建议我可能错在哪里吗 我先谢谢你 Fabrizio尝试删除所有配置,并继续保持NSExceptionRequiremesForwardSecretary至否根据苹果的文档,此处支持密码 连接必须使

大家好, 我试图通过HTTPS连接到远程流媒体服务器,但控制台一直告诉我ATS阻止了明文HTTP

由于远程服务器是第三方服务器,因此我连接了OpenSSL并看到以下信息:

我玩了plist,尝试了不同的方法,但仍然无法连接(如果我绕过了ATS的URL,那么就完美地打开流)

这是我的实际配置:

有什么建议我可能错在哪里吗

我先谢谢你


Fabrizio

尝试删除所有配置,并继续保持
NSExceptionRequiremesForwardSecretary

根据苹果的文档,此处支持密码

连接必须使用AES-128或AES-256对称密码。协商的TLS连接密码套件必须支持通过椭圆曲线Diffie-Hellman转瞬即逝(ECDHE)密钥交换实现的完全前向保密(PFS),并且必须满足以下条件之一: TLS_ECDHE_ECDSA_与_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_与_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_与_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_与_AES_256_CBC_SHA TLS_ECDHE_ECDSA_与_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_与_AES_128_CBC_SHA TLS_ECDHE_RSA_与_AES_256_GCM_SHA384 TLS_ECDHE_RSA_与_AES_128_GCM_SHA256 TLS_ECDHE_RSA_与_AES_256_CBC_SHA384 TLS_ECDHE_RSA_与_AES_128_CBC_SHA256 TLS_ECDHE_RSA_与_AES_128_CBC_SHA

你可以在这里找到更多细节

如果这对您不起作用,您应该检查您的服务器是否正在将您的请求重定向到其他url

如果您正在播放公平播放流,请尝试打印
yourPlayerItem.errorLog()
您将看到流密钥服务器url是否被ATS阻止。在这种情况下,您必须添加适当的异常


希望这对您有所帮助,这正是我为解决相同问题所做的。

尝试删除所有配置并保持
nsExceptionRequiresForwardSecretary

根据苹果文档,此处支持密码

连接必须使用AES-128或AES-256对称密码。协商的TLS连接密码套件必须支持通过椭圆曲线Diffie-Hellman转瞬即逝(ECDHE)密钥交换实现的完全前向保密(PFS),并且必须满足以下条件之一: TLS_ECDHE_ECDSA_与_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_与_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_与_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_与_AES_256_CBC_SHA TLS_ECDHE_ECDSA_与_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_与_AES_128_CBC_SHA TLS_ECDHE_RSA_与_AES_256_GCM_SHA384 TLS_ECDHE_RSA_与_AES_128_GCM_SHA256 TLS_ECDHE_RSA_与_AES_256_CBC_SHA384 TLS_ECDHE_RSA_与_AES_128_CBC_SHA256 TLS_ECDHE_RSA_与_AES_128_CBC_SHA

你可以在这里找到更多细节

如果这对您不起作用,您应该检查您的服务器是否正在将您的请求重定向到其他url

如果您正在播放公平播放流,请尝试打印
yourPlayerItem.errorLog()
您将看到流密钥服务器url是否被ATS阻止。在这种情况下,您必须添加适当的异常


希望这对您有所帮助,这正是我为解决相同问题所做的。

您看到ATS阻止了哪些url吗?您看到ATS阻止了哪些url吗?我删除了除NSExceptionRequiresForwardSecretary之外的所有内容,但问题仍然存在。我将尝试发现是否有重定向,如果我用VLC打开该URL,它就会正常工作。好的,我使用了CFNETWORK_诊断,在日志中,我看到了我通过HTTPS调用的相同URL,但也在kCFErrorDomainCFNetwork附近的HTTP中进行了成熟传输。这就像有两个URL,一个在HTTPS中,一个在HTTP中。我将在这个方向上做一些测试。好的,现在它似乎工作了,我想我的错误是键入“NSExceptionAllowsInsecureHTTPLoads”时出错,设置为“是”,它工作了。最后的设置是:NSExceptionAllowsInsecureHTTPLoads是,NSExceptionRequiremesForwardSecretics否,NSIncludesubDomains是,NSExceptionMinimumTLSVersion TLSv1。现在的问题是:此应用程序设置是否符合苹果对ATS的要求?是的,目前是这样,但时间不长,您可以在这里找到详细信息。好的,我阅读并观看了WWDC视频,非常感谢。但由于我使用的是第三方服务器流媒体,苹果似乎可以接受理由“一些符合条件的理由是:必须连接到另一个不支持安全连接的实体管理的服务器”。我删除了除NSExceptionRequiresForwardSecretary之外的所有内容,但问题仍然存在。我将尝试发现是否有重定向,如果我用VLC打开该URL,它就会正常工作。好的,我使用了CFNETWORK_诊断,在日志中,我看到了我通过HTTPS调用的相同URL,但也在kCFErrorDomainCFNetwork附近的HTTP中进行了成熟传输。这就像有两个URL,一个在HTTPS中,一个在HTTP中。我将在这个方向上做一些测试。好的,现在它似乎工作了,我想我的错误是键入“NSExceptionAllowsInsecureHTTPLoads”时出错,设置为“是”,它工作了。最后的设置是:NSExceptionAllowsInsecureHTTPLoads是,NSExceptionRequiremesForwardSecretics否,NSIncludesubDomains是,NSExceptionMinimumTLSVersion TLSv1。现在的问题是:此应用程序设置是否符合苹果对ATS的要求?是的,目前是这样,但时间不长,您可以在这里找到详细信息。好的,我阅读并观看了WWDC视频,非常感谢。但由于我使用的是第三方服务器流媒体,苹果似乎可以接受这样的理由:“一些有资格考虑的理由的例子是:必须连接到另一个不支持安全连接的实体管理的服务器。”