如何解决错误的证书名称导致Adobe Flash电影中的“安全沙箱违反”错误
|| 我正在使用HTTPS测试我的Adobe Flash应用程序与服务器之间的通信。 如果我要求https://localhost
一切都很好。但是,如果请求url设置为“ 1”,则URLLoader会由于以下Stream错误而失败:
Error #2032: Stream Error. URL: https://192.168.0.1/path-to-script/
如果我在浏览器中调用该URL,则会收到安全警告,可以覆盖该警告(在Chrome中):
This is probably not the site you are looking for!
[Proceed anyways] [Back to safety]
当然,这是因为证书的名称(\“ localhost \”)与IP地址不匹配。
现在,是否可以忽略/抑制该警告/错误?例如是否可以使用flash.net.Socket类?
更新
我现在做了更彻底的测试。
我已经在使用crossdomain.xml:
<?xml version=\"1.0\"?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies=\"master-only\"/>
<allow-access-from domain=\"*\" secure=\"false\" />
<allow-http-request-headers-from domain=\"*\" headers=\"*\" />
</cross-domain-policy>
工作场景:
从host5ѭ托管并加载了Flash
URLLoader请求到“ 6”
无法运作:
仍由http://www.domain-A.com
托管和加载Flash
URLLoader请求到“ 8”
问题在于,由于“错误的证书名称”错误,Flash甚至没有加载ѭ9。 (由于该证书是针对“ѭ10”而不是针对IP地址颁发的,因此)
具体的错误信息:
***违反安全沙箱***
由于缺少策略文件权限,请求者从http://www.domain-A.com/flash/demo.swf请求https:// {IP_OF_SERVER} /demo.html上的资源请求被拒绝。
要了解会发生什么情况:
在浏览器中打开https://65.54.186.107/(这是https://login.live.com的IP)
要进入该网站,您必须确认/忽略警告。
Google Chrome浏览器中的“这可能不是您要查找的网站!”
Firefox中的“此连接不受信任”
IE中的“此网站的安全证书有问题。”
...
我正在寻找一种方法来“忽略” Flash中的此警告。
结论
如果没有办法告诉Flash忽略SSL“错误的证书名称”错误,那么我只能想到挖掘flash.net.Socket类。
还有其他想法吗?
解决方法
我得出的结论是,它无法解决。证书名称必须与域名匹配,否则通信将失败。
毕竟,这是一种安全措施。 (比较:网站也无法告诉浏览器覆盖安全警告。)
仅当Adobe也将实施此类安全警告(在Flash的未来版本中)并让用户决定是否继续进行操作时,才可以将证书颁发给另一个域名。
如果必须使用IP地址而不是域名,则可以考虑购买颁发给IP地址而不是域名的证书:http://www.ssl247.com/ssl-certificates/type/ip-address
,其全部关于领域。
https:// localhost和https://192.168.0.1不是同一域。
您必须将跨域策略配置为接受本地主机。
[编辑]
在https服务器上尝试
> <?xml version=\"1.0\"?> <!DOCTYPE
> cross-domain-policy SYSTEM
> \"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd\">
> <cross-domain-policy>
> <allow-access-from domain=\"www.company.com\"
> secure=\"false\" />
> </cross-domain-policy>
,The_asMan是正确的,如果您要从主SWF或主域中的SWF访问另一个域上的SWF,则需要跨域策略。但是我认为这里的问题是您正在尝试通过路由器或网关IP与服务器建立连接,在这种情况下将无法使用。如果它在Flash中正常运行,而只是一个安全错误,那么您将期望看到一个安全沙箱违规错误,而不是流错误(无法建立连接)。使用您的本地地址进行测试,如果要在其他服务器上进行测试,然后将其上传到Web服务器或其他设备,但是尝试使用网关地址只是没有意义,并且可能无法正常工作。如果您正在本地计算机上运行Xampp之类的服务器并使用本地主机地址进行测试,则说明此操作很准确,并且可以期望您的应用程序能够与Web服务器上部署的功能相同。
这是关于该错误的一些NFO,与我所说的一致:
http://www.judahfrangipane.com/blog/2007/02/15/error-2032-stream-error/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。