Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误的证书名称导致Adobe Flash movie中出现安全沙盒冲突错误_Flash_Actionscript 3_Ssl_Https_Ssl Certificate - Fatal编程技术网

错误的证书名称导致Adobe Flash movie中出现安全沙盒冲突错误

错误的证书名称导致Adobe Flash movie中出现安全沙盒冲突错误,flash,actionscript-3,ssl,https,ssl-certificate,Flash,Actionscript 3,Ssl,Https,Ssl Certificate,我正在使用HTTPS测试我的Adobe Flash应用程序与服务器的通信 如果我向https://localhost一切正常。但是如果请求url设置为https://192.168.0.1URLLoader失败,出现以下流错误: Error #2032: Stream Error. URL: https://192.168.0.1/path-to-script/ 如果我在浏览器中调用URL,我会得到一个安全警告,我可以覆盖它(在Chrome中): 当然,这是因为证书的名称(“localhost

我正在使用HTTPS测试我的Adobe Flash应用程序与服务器的通信

如果我向
https://localhost
一切正常。但是如果请求url设置为
https://192.168.0.1
URLLoader失败,出现以下流错误:

Error #2032: Stream Error. URL: https://192.168.0.1/path-to-script/
如果我在浏览器中调用URL,我会得到一个安全警告,我可以覆盖它(在Chrome中):

当然,这是因为证书的名称(“localhost”)与IP地址不匹配

现在,是否可以忽略/抑制该警告/错误?e、 g.我是否可以使用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>


由于缺少策略文件权限而被拒绝

了解发生了什么:

在浏览器中打开(它是的IP)
要访问网站,您必须确认/忽略警告。
“这可能不是你要找的网站!”在Google Chrome中
Firefox中的“此连接不可信”
“此网站的安全证书有问题。”在IE中

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

结论

如果没有办法告诉Flash忽略SSL“坏证书名”错误,我只能考虑深入研究这个类

还有其他想法吗?

都是关于领域的。
和不是同一个域。
您必须配置跨域策略以接受localhost

[编辑]
在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>
>跨域策略系统
> "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
> 
>secure=“false”/
> 

如果您从主swf或主域上的swf访问另一个域上的swf,您需要一个跨域策略,这是正确的。但我认为这里的问题是,您试图通过路由器或网关IP建立与服务器的连接,在这种情况下,这将不起作用。如果它在flash中正常工作,并且只是一个安全错误,那么您可能会看到一个安全沙盒冲突错误,而不是流错误(无法建立连接)。使用您的本地地址进行测试,如果您想在另一台服务器上进行测试,则将其上载到web服务器或其他地方,但尝试使用您的网关地址是没有意义的,并且可能不起作用。如果您在本地计算机上运行像Xampp这样的服务器,并使用本地主机地址进行测试,那么这样做是准确的,并且可以预期您的应用程序与部署在web服务器上的应用程序功能相同

以下是关于这个错误的一些信息,与我所说的一致:


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

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

只有Adobe也会实施此类安全警告(在未来版本的Flash中),并让用户决定是否继续,证书才能颁发给其他域名


如果你必须使用IP地址而不是域名,你可以考虑购买一个发给IP地址的证书而不是域名:

thx。不幸的是,这不是问题所在。请参阅我更新的问题。您是在https服务器上发布跨域文件还是http?“由于缺少策略文件权限而被拒绝”完全是一个跨域问题。这些域(用于测试)都指向同一个www根。所以crossdomain.xml可以通过http和https访问,这不是跨域问题,因为Flash无法访问crossdomain.xml。尽管如此,文件仍然存在。但是由于证书错误,Flash甚至没有加载crossdomain.xml.Thx。现在,我使用自定义主机名(添加到windows中的主机文件中)在两个域的本地服务器上进行了上一次测试。请参阅我的最新问题。
> <?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>