De pouco adianta uma aplicação com restrições de acesso se o transporte dos dados entre Java e Flex é inseguro. Para fazer com que os dados sejam transportados de forma segura, é necessário configurar o BlazeDS e seu servidor de aplicação/container web para realizar conexões HTTPS, e isso é, com certeza, muita mais simples do que você possa imaginar.
Considerando que sua aplicação já está rodando, vamos pôr a mão na massa.
Primeiro de tudo: services-config.xml. Dentro da tag “channels” você deve definir mais um canal, dessa vez usando as classes responsáveis por transportar dados sobre HTTPS:
<channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
<endpoint url="https://{server.name}:9100/dev/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
</channel-definition>
Após isso, você deve configurar ambos remoting-config.xml e proxy-config.xml para usar como padrão o novo canal que você acabou de criar, subtituindo a propriedade “ref” de “channel”, que antes era my-amf, por my-secure-amf:
<default-channels> <channel ref="my-secure-amf"/> <default-channels>
Pronto! Na parte Flex as alterações eram essas, agora é a vez de configurar o servidor alterando o arquivo server.xml, que no JBoss fica sob o diretório:
jboss/server/default/deploy/jboss-web.deployer
E no Tomcat, sob:
tomcat/conf
Você irá encontrar duas tags mais ou menos assim:
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<!--<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
address="${jboss.bind.address}" maxThreads="150" scheme="https"
secure="true" clientAuth="false" sslProtocol="TLS" />-->
Já deu pra entender como funciona, não? Tudo bem, eu explico mesmo assim. A tag descomentada é a que você usa hoje, acessando sua aplicação através de, por exemplo, http://localhost:8080. Descomentando o connector que usa a porte 443 (e descomentando a de cima, claro) você dirá ao servidor “olá! a partir de agora você só vai conversar pela porta 443 para que ninguém entenda o que estamos falando”.
Só tem um problema, o servidor precisa de uma chave pública para criptografar os dados que serão transmitidos. Levando em consideração que você já a tenha, vamos prosseguir, caso contrário leia o artigo Creating a keystore file and keystore password for HTTPS connections, da Sun.
Com a chave em mãos vamos completar nosso connector, do arquivo server.xml, com as propriedades keystoreFile e keystorePass:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
address="${jboss.bind.address}" maxThreads="150" scheme="https"
secure="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="C:/my-key.keystore" keystorePass="my-key-pass"/>
Feito isso, é só reiniciar o servidor, recompilar seu SWF e acessar seu endereço, substituindo http por https. Se você for utilizar a porta 443 não há necessidade de usar “:443″, caso você deseje alterar a porta para, por exemplo “:8443″ deverá deixá-la explícita na URL.




