我用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与Java服务器交互。在Flex/AIR方面,我将通道更新为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客户端应用程序上实现这一点的线索吗?
发布于 2010-06-03 05:27:46
如果我理解正确的话,您使用的是自签名证书。按照这种假设,你不能强迫用户通过你的AIR应用程序接受证书,这将是一个安全漏洞。要从您的AIR应用程序获得信任的调用,用户需要将您的证书(或您用来签署证书的不受信任的CA )导入到他们自己的密钥库。
你这样做的方式是不同的每一个操作系统,但如何在视窗系统中如何做的一个例子是在IE中浏览您的服务器,获得证书警告,查看证书详细信息,然后导出证书到文件(X509 iirc)。然后,您可以右键单击cert文件并选择安装证书。
然后,对该安全服务器的所有后续调用都应该是可信的。
https://stackoverflow.com/questions/2961146
复制相似问题