flash - 错误的证书名称导致 Adob​​e Flash 电影中的安全沙箱冲突错误

标签 flash actionscript-3 ssl https ssl-certificate

我正在使用 HTTPS 测试我的 Adob​​e Flash 应用程序与服务器的通信。

如果我向 https://localhost 发出请求,一切都很好。但是,如果请求 url 设置为 https://192.168.0.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>

工作场景:

Flash 在 http://www.domain-A.com
上托管和加载 URLLoader 请求 https://www.domain-B.com/demo.html

不工作:

Flash 仍然从 http://www.domain-A.com
托管和加载 URLLoader 请求到 https://{IP_OF_SERVER}/demo.html

问题是,由于“错误的证书名称”错误,Flash 甚至不加载 crossdomain.xml。 (因为证书是为 www.domain-B.com 而不是 IP 地址颁发的)

具体错误信息:

*** Security Sandbox Violation ***
Request for resource at https://{IP_OF_SERVER}/demo.html by requestor from http://www.domain-A.com/flash/demo.swf is denied due to lack of policy file permissions.

要了解会发生什么:

打开https://65.54.186.107/在你的浏览器中(它是 https://login.live.com 的 IP)
要访问该网站,您必须确认/忽略警告。
“这可能不是您要找的网站!”在谷歌浏览器中
Firefox 中的“此连接不受信任”
“这个网站的安全证书有问题。”在 IE 中
...

我正在寻找一种在 Flash 中“忽略”此警告的方法。

结论

如果没有办法告诉 Flash 忽略 SSL“错误的证书名称”错误,我只能想到深入研究 flash.net.Socket类。

还有其他想法吗?

最佳答案

我得出的结论是,它无法解决。证书名称必须与域名匹配,否则通信将失败。

毕竟,这是一项安全措施。 (比较:网站也没有办法告诉浏览器覆盖安全警告。)

只有当 Adob​​e 也实现此类安全警告(在未来版本的 Flash 中)并让用户决定是否继续时,证书才能颁发给另一个域名。

如果您必须使用 IP 地址而不是域名,您可以考虑购买颁发给 IP 地址而不是域名的证书:http://www.ssl247.com/ssl-certificates/type/ip-address

关于flash - 错误的证书名称导致 Adob​​e Flash 电影中的安全沙箱冲突错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142137/

相关文章:

html - 在 Flash 影片中嵌入浏览器窗口

android - Adobe Flash Builder 4.7 标准版和高级版之间的区别

flash - AS3 删除事件监听器

web-applications - 一个主机名上不同端口上的两个应用程序的 SSL 代理

html - Flash 上的 anchor 标记在 Chrome 中不起作用

javascript - 识别鼠标点击 Flash 元素

ios - ActionScript3.0 - 如何获取坐标处像素的颜色 (uint)? (Stage3D, Flare3D)

actionscript-3 - Flash 事件执行顺序

c# - IdentityServer 4 Https 通过自签名证书

java - allowUnsafeRenegotiation,但仍然是 CertificateException