客户端Java安全套接扩展JavaSecureSocketExtensionJSSE使.DOCVIP

  • 7
  • 0
  • 约1.45万字
  • 约 27页
  • 2018-10-31 发布于天津
  • 举报

客户端Java安全套接扩展JavaSecureSocketExtensionJSSE使.DOC

客户端Java安全套接扩展JavaSecureSocketExtensionJSSE使

客户端 Java 安全套接扩展 (Java Secure Socket Extension, JSSE) 使 Internet 安全通信成为现实。它是 SSL 3.0 (Secure Socket Layer) 及 TLS 1.0 (Transport Layer Security,由 SSL 3.0 改善而来) 的框架和实现。这个包让 Java 开发人员能够开发安全的网络应用;为基于 TCP/IP 的何应用协议,如 HTTP、FTP、Telnet、或者 NTTP,在客户端和服务器端之间建立安全的数据通道。 在这篇文章的第一部分 (服务器端),作者已经详细说明了 SSL 和 JSSE,并且说明了如何开发服务器端支持 SSL 应用程序。那一部分中我们开发了一个 HTTPS 服务器,这是一个非常有用的应用程序,在这一部分中同样会用到它。 在这篇文章涉及到客户端的内容,它首先简述 JSSE,然后会做这样一些事情 l在客户端使用 JSSE API l一步步的开发一个支持 SSL 的客户端应用程序 l开发简单的支持 SSL 的客户端应用程序 l从服务器端导出证书并在客户端导入 l开发一个支持 SSL 的网页浏览器 JSSE Java 安全套接扩展 (JSSE) 提供了 SSL 和 TLS 协议的框架及实现。JSSE 将复杂的、根本的加密算法抽象化了,这样就降低了受到敏感或者危险的安全性攻击的风险。正如你在本文中看到的那样,由于它能将 SSL 无缝地结合在应用当然,使安全应用的开发变得非常简单。JSSE 框架可以支撑许多不同的安全通信协议,如 SSL 2.0 和 3.0 以及 TLS 1.0,但是 J2SE v1.4 只实现了 SSL 3.0 和 TLS 1.0。 用 JSSE 编写客户端应用程序 JSSE API 提供了扩充的网络套接字类、信用和密匙管理,以及为简化套接字创建而设计的套接字工厂框架,以此扩充 java.security 和 两个包。这些类都包含在 和 .ssl 包中。 .sll.SSLSocketFactory 类是一个创建安全套接字的对象工厂。可以通过下面两种方法获得 SSLSocketFactory 的实例: 1、调用 SSLSocketFactory.getDefault 来获得默认的工厂。默认的工厂被配置为只允许服务器端验证 (不允许客户端验证)。注意许多电子商务网站不需要客户端验证。 2、使用指定的配置来构造一个新的工厂 (这不在本文讲述的范围内)。 建立 SSLSocketFactory 实例之后,你就可以通过 SSLSocketFactory 实例的 createSocket 方法创建 SSLSocket 对象了。这里有一个例子,该例通过 SSL 端口 443 (这是 HTTPS 的默认端口) 创建套接字并连接到 Sun 的 WWW 服务器。 // Get a Socket factory SocketFactory factory = SSLSocketFactory.getDefault(); // Get Socket from factory Socket socket = factory.createSocket(, 443); 使用低层的 SSL 套接字 现在,让我们看一个使用低层套接字在 HTTPS 服务器上打开一个 SSL 套接字连接的完整例子。在这个例子中,打开了一个到 HTTPS 服务器的 SSL 套接字连接,并且读入默认文档的内容。示例代码 1 展示了这个应用程序,其中用于打开 SSL 套接字的代码已经加黑显示了。你将会看到,应用程序中其余代码就是常规的输入/输出流代码。 代码示例 1:ReadHttpsURL1 import .*; import .*; import .ssl.*; public class ReadHttpsURL1 { static final int HTTPS_PORT = 443; public static void main(String argv[]) throws Exception { if (argv.length != 1) { System.out.println(Usage: java ReadHttpsURL1 ); System.exit(0); } // Get a Socket factory SocketFactory factory = SSLSocketFactory.getDefault(); // Get Socket from factory Socket socket = factory.createSocket(argv[0], HTTPS_PORT); BufferedWriter out

文档评论(0)

1亿VIP精品文档

相关文档