JSSE(Java 安全套接字扩展,Java Secure Socket Extension)使 Java 应用程序能够在因特网上使用 SSL 安全地进行通信。由于 developerWorks 已经提供了一篇涵盖 JSSE 基本用法的教程(请参阅 参考资料),所以本文将集中阐述该技术的更高级用法。本文将演示如何使用 JSSE 接口定制 SSL 连接的属性。
首先,我们将开发一个非常简单的安全客户机/服务器聊天应用程序。在我们构建该程序的客户机端时,我将演示如何定制 KeyStore 和 TrustStore 文件,以便从客户机的文件系统装入它们。接着,我们将着重说明证书和标识。通过从 KeyStore 选择不同的证书,可以将客户机以不同的形式提供给不同的服务器。如果您的客户机应用程序需要连接到多个对等方,或者甚至它需要冒充不同的用户,这项高级的功能都特别有用。
由于本文着重讲述更高级的主题,因此假定您已经具备了 JSSE 的使用经验。要运行示例,需要一个带有正确安装和配置 JSSE 提供程序的 Java SDK。J2SE 1.4 SDK 提供了已安装和配置的 JSSE。如果您正在使用 J2SE 1.2 或 1.3,则需要获取一个 JSSE 实现并安装它。请参阅 参考资料下载 JSSE 扩展。
JSSE API 只是 J2SE 1.4 的一项标准,并且早期的 JSSE 实现之间存在略有不同的变体。本文的示例基于 1.4 API。必要的时候,我会强调使示例与 J2SE 1.2 和 1.3 的 Sun JSSE 实现协同工作所必需的更改。
入门:设置
在我们深入研究 JSSE 之前,先让我们熟悉一下将要使用的客户机/服务器应用程序。SimpleSSLServer 和 SimpleSSLClient 是我们的演示应用程序的两个组件。为了运行示例,需要在应用程序的每一端上设置好几个 KeyStore 和 TrustStore 文件。特别是您将需要:
称为 clientKeys 的用于客户机的 KeyStore 文件,分别包含用于虚构的通信者 Alice 和 Bob 的证书
称为 serverKeys 的用于服务器的 KeyStore 文件,包含一个用于服务器的证书
称为 clientTrust 的用于客户机的 TrustStore 文件,包含服务器的证书
称为 serverTrust 的用于服务器的 TrustStore 文件,包含 Alice 和 Bob 的证书
接下来,下载本文随附的 jar 文件。这些文件包含客户机/服务器应用程序的源代码和已编译的版本,因此,只要把它们放到 CLASSPATH 中,就可以使用了。
查看原文>>
http://www.ibm.com/developerworks/cn/java/j-customssl/
责任编辑:admin