Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 柔性/空气+;通过SSL传输数据_Apache Flex_Ssl_Air_Graniteds - Fatal编程技术网

Apache flex 柔性/空气+;通过SSL传输数据

Apache flex 柔性/空气+;通过SSL传输数据,apache-flex,ssl,air,graniteds,Apache Flex,Ssl,Air,Graniteds,我使用SSL运行JBoss,证书是使用openssl生成的: <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/ch

我使用SSL运行JBoss,证书是使用openssl生成的:

      <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应用程序,它通过GraniteDS与JavaEE服务器交互。在Flex/AIR端,我在services-config.xml上将频道更新为SecureAMFChannel:

<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客户端应用程序上从何处开始实现,您能给我一些线索吗?

如果我理解正确,您使用的是自签名证书。假设你不能强迫用户通过你的AIR应用程序接受证书,那将是一个安全漏洞。要从您的AIR应用获得可信呼叫,用户需要将您的证书(或您签署证书时使用的不受信任的CA)导入到他们自己的密钥库中

每个操作系统执行此操作的方式不同,但在Windows中执行此操作的示例是在IE中浏览服务器,获取证书警告,查看证书详细信息,然后将证书导出到文件(X509 iirc)。然后,您可以右键单击证书文件并选择安装证书


然后,应该信任对该安全服务器的所有后续调用

是的,我们使用的是自签名证书。我们应该在应用程序投入生产时获得一份真正的证书,但与此同时,我们每次都会被要求获得证书。所以现在我应该寻找一种通过air导入证书的方法,对吗?听起来你现在只是遇到了开发问题,因为当你获得真正的证书时,它将由一个受信任的CA签名。现在,您需要对正在测试的每台机器执行手动步骤,以便在不收到警告的情况下让调用正常工作。很遗憾,您无法通过AIR将证书导入用户系统。谢谢!我已经记录了整个过程,只要应用程序还在开发中,我们就通过HTTP保持连接。我们买了真正的证书后再换。在这个过程中,我学到了很多关于SSL、HTTPS和证书的知识。再次感谢!