Неверное имя сертификата вызывает ошибку нарушения изолированной программной среды в фильме Adobe Flash - PullRequest
3 голосов
/ 26 мая 2011

Я проверяю связь моего приложения Adobe Flash с сервером, используя HTTPS .

Если я сделаю запрос на https://localhost, все в порядке.Но если URL-адрес запроса установлен на https://192.168.0.1, URLLoader завершается с ошибкой этого потока:

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>

Рабочий сценарий :

Флэш-память, загруженная из 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-адреса)

Конкретное сообщение об ошибке:

*** Нарушение безопасности изолированной программной среды ***
Запрос ресурса https://{IP_OF_SERVER}/demo.html по запросу http://www.domain -A.com / flash / demo.swf отклонен из-за отсутствияразрешений файла политики.

Чтобы понять, что происходит:

Откройте https://65.54.186.107/ в вашем браузере (это IP https://login.live.com)
Комуперейдите на веб-сайт, который вы должны подтвердить / проигнорировать.
«Возможно, это не тот сайт, который вы ищете!» в Google Chrome
«Это соединение ненадежное» в Firefox
«Существуетпроблема с сертификатом безопасности этого сайта. "в IE
...

Я ищу способ" игнорировать "это предупреждение во Flash.

Заключение

Если нет способа заставить Flash игнорировать ошибки SSL «неверное имя сертификата», я могу думать только о копании в класс flash.net.Socket .

Есть еще идеи?

Ответы [ 3 ]

3 голосов
/ 14 июня 2011

Я пришел к выводу, что это невозможно решить. Имя сертификата должно соответствовать имени домена, в противном случае связь не будет установлена.

В конце концов, это мера безопасности. (Сравните: веб-сайт также не может указать браузеру переопределить предупреждение о безопасности.)

Только если Adobe также внедрит такое предупреждение о безопасности (в будущей версии Flash) и позволит пользователю решить, продолжать или нет, сертификат может быть выдан другому доменному имени.

Если вам необходимо использовать IP-адрес вместо имени домена, вы можете купить сертификат, выданный на IP-адрес, вместо имени домена: http://www.ssl247.com/ssl-certificates/type/ip-address

2 голосов
/ 26 мая 2011

Это все о домене.https://localhost и https://192.168.0.1 не являются одним и тем же доменом.Вы должны настроить свою междоменную политику для принятия localhost.

[EDIT]Попробуйте это на 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>
0 голосов
/ 26 мая 2011

The_asMan прав, вам нужна политика междоменных доменов, если вы обращаетесь к SWF в другом домене из основного SWF или SWF в основном домене. Но я думаю, что проблема заключается в том, что вы пытаетесь установить соединение с сервером через IP-адрес вашего маршрутизатора или шлюза, и это не будет работать в этом случае. Если бы он работал должным образом во флэш-памяти и был просто ошибкой безопасности, то вы ожидаете увидеть ошибку нарушения изолированной программной среды безопасности, а не ошибку потока (невозможно установить соединение). Проверьте свой локальный адрес, и если вы хотите проверить его на другом сервере, загрузите его на веб-сервер или что-то еще, но попытка использовать адрес шлюза просто не имеет смысла и, вероятно, не работает. Если вы используете сервер, такой как Xampp, на своем локальном компьютере и тестируете с адресом localhost, вы делаете это точно и можете ожидать, что ваше приложение будет функционировать так же, как и на веб-сервере.

Вот некоторые НФО с этой ошибкой, которые соответствуют тому, что я говорю:

http://www.judahfrangipane.com/blog/2007/02/15/error-2032-stream-error/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...