Проверка подлинности SSL-сертификата на стороне клиента в Adobe AIR - PullRequest
3 голосов
/ 03 февраля 2010

Я пытаюсь использовать веб-сервис RESTful в Adobe AIR. Служба использует сертификаты на стороне клиента для проверки подлинности, поэтому мне нужно установить сертификат и закрытый ключ, используемые URLRequest AIR / Actionscript при подключении к этой службе RESTful.

Возможна ли установка сертификата / закрытого ключа в Adobe AIR?

Я нашел некоторую документацию от Adobe, касающуюся добавления в хранилище сертификатов SSL для AIR 1.5 в Linux, но я надеялся на независимое от платформы решение.

Ответы [ 3 ]

4 голосов
/ 17 мая 2010

Я не мог найти способ сделать это (ну, пока нет).

Adobe использует базовое хранилище сертификатов ОС. В Windows это означает то же, что используется IE (и Google Chrome).

Решение only , которое я придумал, заключается в том, чтобы под linux следовать инструкциям по указанной вами ссылке, а для Windows пользователь должен загрузить / установить сертификат клиента через IE (и Корневой CA сервера, так как у нас есть самоподписанный сертификат для организации), тогда Air использует эти сертификаты.

Это приходит с некоторыми неприятностями -

  1. Если пользователь не устанавливает корневой ЦС, его просят подтвердить сертификат безопасности сервера.
  2. Пользователю будет предложено подтвердить, что сертификат клиента используется при каждом запросе к серверу (и в бизнес-приложении, которое выполняет много запросов данных, это делает его непригодным для использования). Чтобы обойти это, единственный способ, который я нашел, - это заставить пользователя войти в IE, включить и включить Tools -> Internet Options -> Security -> Custom Level -> Miscellaneous -> "Don't prompt for client certificate selection when no certificate or only one certificate exists". Это останавливает постоянные запросы (хотя, конечно, не работает, если имеется более одного сертификата.
  3. Adobe Air все равно выйдет из строя, при этом все это, если только пользователь не перейдет, в IE, к Tools -> Internet Options -> Advanced -> Security -> "Check for service certificate revocation*" и не снимет галочку с этого. Вероятно, это необходимо только для самозаверяющих серверных сертификатов для серверов, которые не поддерживают отзыв, но я не уверен.

В любом случае, как вы видите, все это ужасный беспорядок.

0 голосов
/ 28 марта 2013

Для этого есть класс: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SecureSocket.html

Я считаю, что метод addBinaryChainBuildingCertificate должен быть в состоянии выполнить эту задачу.

0 голосов
/ 26 октября 2010

Итак, почти год спустя ... это можно сделать на JavaScript, который может помочь, а может и не помочь, используя проект с открытым исходным кодом Forge:

http://github.com/digitalbazaar/forge/blob/master/README

AДемо-версия WebID в настоящее время использует Forge для предоставления сертификата на стороне клиента в качестве механизма аутентификации.Это просто демонстрация, поэтому сертификаты SSL являются самозаверяющими:

https://webid.digitalbazaar.com/manage/

https://payswarm.com/webid-demo/

...