cordova白名单iOS 10 SSL错误:加载资源失败:发生SSL错误,无法build立与服务器的安全连接

我正在尝试发送一个ArrayBuffer

https://1511921174.cloud.vimeo.com/upload?ticket_id=xxxxxxxxxx&video_file_id=xxxxxx&signature=xxxxxxxx=1%22 

在iOS 10中没有任何事情发生。 我必须有一个白名单错误。 根据cordova-plugin-whitelist文档,我将* .vimeo.com和* .cloud.vimeo.com列入白名单。 一切工作正常在iOS 9和Android。

 <access origin="http://*.vimeo.com" subdomains="true" /> <access origin="https://*.vimeo.com" subdomains="true" /> <access origin="http://*.cloud.vimeo.com" subdomains="true" /> <access origin="https://*.cloud.vimeo.com" subdomains="true" /> 

任何想法可能发生什么? 谢谢!

我不得不对iOS 10的Content-Security-Policy元标签进行调整( 请参阅此处 ),因此您可能还需要添加/更新,例如

 <meta http-equiv="Content-Security-Policy" content="default-src 'self' gap: file: https://*.cloud.vimeo.com; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; media-src *"> 

看起来这不是白名单,而是一个App Transport Security问题。

我使用iOS 10将video上传到Vimeo。看起来Vimeo的SSL证书可能有问题。 他们可能会使用旧的TLS版本。 当我closuresplist中的App Transport Security时,它刚刚工作:

 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 

所以,如果没有closures所有的东西,我只能在vimeo.com的plist中添加下面的代码:

 <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>vimeo.com</key> <dict> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionMinimumTLSVersion</key> <string>TLSv1.0</string> <key>NSRequiresCertificateTransparency</key> <false/> </dict> </dict> </dict> 

我希望能帮助那里的任何人。

Interesting Posts