安全通信

Mr.Dangerous 贡献于2016-11-22

作者 Emil  创建于2015-05-07 01:53:00   修改者yonglu jiang  修改于2016-10-27 09:46:00字数2021

文档摘要:HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲就是HTTP的安全版。 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,它比http协议安全,是目前广泛用于互联网上进行安全通讯的一种技术。
关键词:

 1. 安全通信机制说明 1.1. 简介 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲就是HTTP的安全版。 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,它比http协议安全,是目前广泛用于互联网上进行安全通讯的一种技术。 1.2. 作用 它的主要作用可以分为两种: l 一种是建立一个信息安全通道,来保证数据传输的安全。 l 另一种就是确认双方身份的真实性。 2. 技术实施说明 2.1. 双向身份认证 采用基于HTTPS协议的双向身份认证技术。 l 服务端认证: 服务端获得客户端发送过来的证书,如果该证书和服务器证书库中的客户证书匹配成功,即通过认证,可以继续访问服务端资源。反之则拒绝访问。 l 客户端认证: 客户端访问服务端时,检查该服务端的证书是否在自己的信任证书库中,如果存在就继续访问,反之就中断访问。 2.2. 基本实现逻辑 l 数字证书生成方式: 客户端和服务端均采用自我签名的方式创建各自的数字证书。 l 具体步骤 1) 生成服务端密钥库并导出服务端证书。 2) 生成客户端密钥库并导出客户端证书。 3) 将客户端证书导入服务端密钥库中。 4) 将服务端证书导入客户端的信任证书库中。 5) 服务端修改应用服务器配置,启用HTTPS连接。 6) 客户端通过JSSE编程方式,通过HTTPS协议访问服务端。 2.3. 演示例子 JDK:1.6.0_32 Tomcat:apache-tomcat-7.0.27 (一) 生成服务端密钥库并导出服务端证书 服务端密钥库参数”CN”的值需要与服务器的域名相同,即出现这个提示时要输入域名“您的名字与姓氏是什么?” Keytool -genkey -keyalg RSA -alias server -keystore server.keystore -validity 3650 Keytool -export -alias server -keystore server.keystore -file server.cer (二) 生成客户端密钥库并导出客户端证书。 Keytool -genkey -keyalg RSA -storetype PKCS12 -alias client -keystore client.p12 -validity 3650 Keytool -export -storetype PKCS12 -alias client -keystore client.p12 -file client.cer (三) 将客户端证书导入服务端密钥库中。 Keytool -import -file client.cer -alias client -keystore server.keystore (四) 将服务端证书导入客户端的信任证书库中。 Keytool -import -file server.cer -alias server -keystore client.truststore (五) 服务端修改应用服务器配置,启用HTTPS连接。 编辑${catalina.base}/conf/server.xml,找到Connector port="8443"的标签,取消注释,并修改成如下: (六) 客户端通过JSSE编程方式,通过HTTPS协议访问服务端。 JAVA编程时,需要在调用前设置系统属性,或者定义自己的证书信任管理器类并实现接口类:X509TrustManager 设置系统属性如下: System.setProperty("javax.net.ssl.trustStore", "client.truststore"); System.setProperty("javax.net.ssl.trustStorePassword", "yourpass"); System.setProperty("javax.net.ssl.keyStore", "client.p12"); System.setProperty("javax.net.ssl.keyStorePassword", "yourpass"); System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档