Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.09.2011, 11:50
Anton_sz вне форума Посмотреть профиль Отправить личное сообщение для Anton_sz Найти все сообщения от Anton_sz
  № 1  
Ответить с цитированием
Anton_sz

Регистрация: Sep 2011
Сообщений: 9
По умолчанию as3crypto ssl / tls

Здравствуйте все. Не так давно я спрашивал на форуме про кроссдоменные файлы политики. Теперь возникла необходимость реализовать защищенное соединение межу flash и сервером (https).
Сертификат выдан недавно, поэтому сразу оговорюсь: он не просрочен.

Использую среду flashdevelop. Я скачал as3crypto.swc подключил ее как библиотеку.
Написал код, выполняющий нужные мне действия:
Код AS3:
field = new TextField();
field.text = "test - https\n";
field.x = 10;
field.y = 10;
field.width = 780;
field.height = 580;
field.borderColor = 0x666666;
field.border = true;
addChild(field);
 
Security.loadPolicyFile("xmlsocket://ip:843");
 
// https
tlsSock = new TLSSocket();
tlsSock.connect("test.ru", 443);
 
//tlsSock.addEventListener(Event.
tlsSock.addEventListener(Event.CONNECT, function(success:Event):void {
	field.appendText("connected: " + tlsSock.connected.toString() + "\n");
	if(tlsSock.connected) {
		var request:String;
		request = "GET /robots.txt HTTP/1.1\n";
		request += "Host: test.ru\n";
		request += "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2\n";
		request += "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n";
		request += "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\n";
		request += "Accept-Encoding: gzip, deflate\n";
		request += "Connection: keep-alive\n";
		request += "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\n\n";
 
		tlsSock.writeUTFBytes( request );
		tlsSock.flush();
		field.appendText( "request has been sent\n" );
	}
	else
	{
		field.appendText("Can't connect to server!");
	}
});
 
tlsSock.addEventListener(ProgressEvent.SOCKET_DATA, function(e:*):void {
	var s:String = tlsSock.readUTFBytes(tlsSock.bytesAvailable);
	field.appendText("Response from test.ru: " + s.length + " characters\n");
	field.appendText(s + "\n");
});
 
tlsSock.addEventListener(Event.CLOSE, function(e:Event):void { field.appendText("Connection close\n"); } );
Если запускать из среды, то все работает, а вот если из браузера, то флешка загружается, соединение устанавливается, запрос отправляется, но ответ не приходит.
Через некоторое время соединение закрывается. Никаких ошибок при этом нет.
Если запускать из среды, то в дебаге пишет:
Код:
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
GOT ALERT! type=0
Причем эти ошибки лезут когда я пытаюсь подключиться к серверу.
В логах flash странные предупреждения:
Код:
Предупреждение: В файле политики от xmlsocket://test.ru:843 обнаружено secure="true", но узел test.ru, по видимому, не является локальным компьютером.  Это может быть небезопасно.  Дополнительные сведения см. на веб-сайте http://www.adobe.com/go/strict_policy_files_ru.
Предупреждение: В файле политики от xmlsocket://test.ru:843 обнаружено secure="true", но узел test.ru, по видимому, не является локальным компьютером.  Это может быть небезопасно.  Дополнительные сведения см. на веб-сайте http://www.adobe.com/go/strict_policy_files_ru.
Предупреждение: Недействительный тег <allow-http-request-headers-from> для домена "*" в файле политики в папке xmlsocket://test.ru:843 игнорируется
хотя файл политик, который отдается выглядит так:
Код:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only" />
<allow-access-from domain="*" to-ports="*" secure="false" />
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>
В нем secure="false";

В чем проблема? где руки скривились?

Добавлено через 7 часов 31 минуту
блин, 52 просмотра и никто ничего не может сказать?


Последний раз редактировалось Anton_sz; 16.09.2011 в 18:50. Причина: неполнота информации :)
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:06.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.