2010-06-02 1 views
1

Я бегу JBoss с SSL, сертификат генерируется с помощью OpenSSL:Flex/AIR + GraniteDS через SSL

 <Connector protocol="HTTP/1.1" SSLEnabled="true" 
     port="8443" address="${jboss.bind.address}" 
     scheme="https" secure="true" clientAuth="false" 
     keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore" 
     keystorePass="password" sslProtocol = "TLS" /> 

Мой клиент является приложением AIR, который взаимодействует с сервером Java EE через GraniteDS. На стороне/AIR Flex, я обновил канал на SecureAMFChannel на услуги-config.xml:

<channel-definition id="myApp-graniteamf" class="mx.messaging.channels.SecureAMFChannel"> 
     <endpoint uri="https://localhost:8443/myApp/graniteamf/amf" 
     class="flex.messaging.endpoints.SecureAMFEndpoint" /> 
    </channel-definition> 

Теперь, когда я подключаю от моего клиента, AIR спрашивает меня, если я хочу, чтобы идти вперед с соединением (просмотреть сертификат и т. д.).

Я новичок во всей концепции SSL/HTTPS, но я прочитал некоторые документы. То, что я пытаюсь понять сейчас, заключается в том, как заставить мое приложение знать, что сервер в безопасности (localhost в этом случае). Из того, что я получил до сих пор, клиентское приложение должно «доверять серверу как CA» или просто доверять сертификатам с определенного сервера.

Можете ли вы дать мне несколько подсказок относительно того, где начать реализацию этого приложения на стороне клиента AIR?

ответ

2

Если я правильно понимаю, вы используете самоподписанный сертификат. Исходя из этого предположения, вы не можете заставить пользователя принять сертификат через приложение AIR, это будет дыра в безопасности. Чтобы получить звонок из приложения AIR, которому нужно доверять, пользователю необходимо будет импортировать ваш сертификат (или ненадежный CA, с которым вы подписали сертификат), в свое собственное хранилище ключей.

Как вы это делаете, разные для каждой ОС, но пример того, как это сделать в Windows, - это просмотр вашего сервера в IE, получение предупреждения о сертификате, просмотр сведений о сертификате, а затем экспорт сертификата в файл (X509 iirc). Затем вы можете щелкнуть правой кнопкой мыши файл сертификата и выбрать установку сертификата.

Все последующие вызовы на этот защищенный сервер затем должны быть доверенными.

+0

Да, мы используем самоподписанную сертификацию. Мы должны получить реальный сертификат, когда приложение будет продолжаться, но в то же время мы получаем запрос на получение сертификата каждый раз. Так что теперь я должен искать способ импортировать сертификат по воздуху, верно? –

+0

Похоже, что у вас сейчас есть проблема с разработкой, так как когда вы получите свой реальный сертификат, он будет подписан одним из доверенных центров сертификации. На данный момент вам нужно будет выполнить инструкции по управлению для каждой машины, которую вы тестируете, чтобы разрешить работу без предупреждения. Вы не можете заставить AIR импортировать сертификат в систему пользователей для вас, к сожалению. –

+0

Спасибо! Я документировал весь процесс, и мы поддерживаем соединение через HTTP, пока приложение находится в разработке. Мы переключим его, когда будет куплен реальный сертификат. В этом процессе я много узнал о SSL, HTTPS и сертификатах. Еще раз спасибо! –