软件密码学基础和配置tomcat的https连接器
2016-07-03 20:26
393 查看
软件领域的加密原理
配置tomcat的https连接器,即配置加密连接器。若要如此,就不得不了解一下软件领域里的加密原理。对称加密模型,如图:
这种加解密的模型——对称加密,会有一个极大的漏洞,即a怎么将密钥告诉给b?答案是根本就没有安全途径!!!
非对称加密模型
案例,蒋介石给宋美龄写信。
注意:公钥加密的数据只能由私钥来解,私钥加密的数据只能由公钥来解。
此时会产生一个新的问题:宋美龄将公钥传递给蒋介石的过程中,我将其截获下来,然后我自己通过非对称加密算法生成一对密钥——私钥和公钥,接着将我的公钥传递给蒋介石,蒋介石获取到我的公钥,对信进行加密,将信发送给宋美龄,我又拦截到,用我的私钥对信进行解密即可,即使信发送给宋美龄,也无法通过其私钥来解密。
总结:当蒋给宋写信时,首先获取到宋的公钥,但是要怎么确保公钥是宋的呢?
解决办法,如图:
此时又会产生一个新的问题:我可以将宋传给蒋的数字证书拦截下来,然后加密一段数据,发送给宋(如果蒋将信发给宋,就截下来),宋解密我发给其的数据。
总结:蒋用宋的数字证书对信进行加密发送给宋,宋收到信,宋要判断信是蒋发的,还是我发的?
解决办法,如图:
数据摘要即数据指纹,每一段数据都有一个指纹,如同每个人都有一个唯一的指纹一样,数据指纹是通过MD5算法算得。
配置tomcat的https连接器
首先为网站生成一份数字证书,使用的命令是:keytool -genkey -alias tomcat -keyalg RSA(这句命令的意思是使用keytool生成一个名字为tomcat的证书,存放在.keystore这个密钥库中),然后再在服务器中配置加密的连接器。一访问此加密连接器,网站即向你出示一份数字证书,然后浏览器安装这份数字证书,相当于安装此网站的公钥。
数字证书——系统会使用密钥库(keystore)来保存。
为网站生成一份数字证书(配置密钥库)
如下图:此时生成的密钥库
.keystore默认存放在
C:\Users\wang sheng目录下。
使用命令:
keytool -list -keystore .keystore可查看
.keystore密钥库里面的所有证书:
在服务器中配置加密的连接器
将密钥库剪切,存放在Tomcat服务器下的conf目录下,在server.xml配置加密连接器。<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="conf/.keystore" keystorePass="123456" />
keystoreFile:密钥库存放的位置。
keystorePass:密钥库访问的口令(密码)。
提示:配置Connector连接器可参考tomcat文档。
测试
在客户端安装服务器证书
进入服务器端口8443,但是没有CA认证的数字证书。点击
继续浏览此网站,出现如下界面。
点击
证书错误,出现如下界面。
点击
查看证书,出现如下界面。
点击
安装证书,出现如下界面。
以上步骤即是在客户端安装了一份数字证书,并信任该数字证书。
再次启用浏览器进行访问,以加密的方式与服务器进行交互,应该会出现如下界面:
此时又会产生一个问题:当浏览器被劫持,所有的不安全证书被允许安装时就又出现不安全状况。
检查安装结果
步骤如图所示:注意:此文配置的只是单向加密连接器。实际开发中应配置https双向加密连接器。
相关文章推荐
- 【测试工具】tcpdump + wireshark 抓包实践
- 【网络流】hdu4940
- 读书笔记-java网络编程-3线程-线程调度
- BP神经网络的学习
- 神经网络(二):感知机
- 有关网络协议融合、存储关键知识点的一些理解
- 关于网络隧道技术
- APP开发流程实例讲解-儒释道网络电台八天开发全程-项目发起
- linux网络编程,将服务器端时间通过tcp传送到客户端
- TCP/IP详解学习笔记(12)-TCP的超时与重传
- TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器
- TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流
- TCP/IP详解学习笔记(10)-TCP连接的建立与中止
- TCP/IP详解学习笔记(9)-TCP协议概述
- TCP/IP详解学习笔记(8)-DNS域名系统
- TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节
- TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议