记录一次Universal Link的天坑

86 阅读2分钟

直接描述问题:

按照网上的资料配置了app-site-association文件,不带后缀名,跟运维讲放在https://www.域名.com/.well-known/app-site-association 路径下,结果访问不到

结论:waf针对app-site-association路径配置跳过拦截后成功

第一次检查:

文件名嘎嘎正确

文件路径嘎嘎正确

结果:使用苹果验证链接app-site-association.cdn-apple.com/a/v1/域名.com…

第一次反馈运维无法访问(测试环境)
  • 检查文件名嘎嘎正确
  • 文件路径嘎嘎正确
  • 检查Nginx配置正确
  • 检查网络拦截没记录
  • 刷新cdn缓存正常
  • 检查雷池拦截配置正常
  • 最后发现第三方CDN做了拦截,解决后测试服生效
第二次正式服配置

因为域名访问是直接访问到h5首页的,所以需要联系前端大哥把app-site-association放在前端代码里,在前端代码打包时候配置文件路径,不然手动放上去的文件会在下一次h5打包时被删掉。 放好了,又访问不到

又开始重新排查

配置Nginx 添加add_header Content-Type application/json 访问不到

开始暴躁,移除全部安全产品,不行

开始怀疑蜘蛛拦截(防止爬虫的一种方式)拦截出现了问题,排查之后无异常

开始邪修,怀疑苹果cdn有问题(实际上一点问题都没有)

52641ee352ba4e9c8b095d4abf9b5ab0.png

此刻主包的心情已经开始打算摆烂 突然发现了使用法国IP访问出现了这个页面

BE0FD5AB-0F11-4C76-B943-C306A7D9792C.png

内心开始有点兴奋,感觉和waf拦截有关系。 开始反馈运维,是否可以对单个文件配置拦截规则

88bc4751de9547149e222258532c1386.png

重新使用苹果验证链接app-site-association.cdn-apple.com/a/v1/域名.com

2CF3220D-0366-4628-81B7-53E01F32FF86.png

成功了!!! 后来总结,当时移除全部安全产品的时候,应该是waf没有移除成功,所以后来针对waf进行访问路径规则配置的时候才是真正的问题所在。