[转载]JavaEE学习篇之——网络传输数据中的密码学知识以及Tomcat中配置数字证书EE

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/21716557   今天是学习JavaWeb的第二天,我们来了解什么呢?就了解一下Tomcat中配置数字证书的相关内容,但是在说这部分内容的时候,我们貌似得先说一下数字证书的相关概念,那说到数字证书的时候我们还得了解一些密码学的相关知识,这就是连锁反应吗?好吧不多说了,先来看一下密码学中关于网络中数据传输的知识。

原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/21716557

 

今天是学习JavaWeb的第二天,我们来了解什么呢?就了解一下Tomcat中配置数字证书的相关内容,但是在说这部分内容的时候,我们貌似得先说一下数字证书的相关概念,那说到数字证书的时候我们还得了解一些密码学的相关知识,这就是连锁反应吗?好吧不多说了,先来看一下密码学中关于网络中数据传输的知识。

 

首先来了解一下网络上传输数据的加密方式:

第一种是对称加密:就是加密数据的密码和解密数据的密码是相同的。这种方式的优点就是简单,最大的缺点就是不安全,因为加密的密码和解密的密码是相同的,那么加密的人就必须将密码告诉解密的人,在这个过程中就存在不安全了,怎么告诉都不安全,打电话怕人偷听,写信怕被人拦截。。。而且只要拿到密码就可以进行解密数据,这种方式也是不安全的。

 

第二种是非对称加密:就是加密数据的密码和解密数据的密码是不相同的,原理就是产生一对公钥和私钥,公钥加密的数据只能私钥解,私钥加密的数据只能公钥解,所以当拿到公钥加密的数据,只能用私钥解,公钥是解不开的。

 

下面我就来通过一个例子来说明一下这个过程:

角色:接收者,发送者,拦截者

名词:CA机构,数字证书,数字签名

 

下面的就通过这张图来解释一下(这张图花了我一个上午的时间,眼睛都看花了,一定要保证我的版权呀!):

 

 

下面就来模拟集中情况来说明一下:

 

第一种情况:接收者会生成一对公钥和私钥,并且将自己的公钥发送给发送者,然后发送者用这个公钥将需要发送的数据进行加密,然后再将加密之后数据发送给接收者,这时候接收者只需要用私钥进行解密就可以得到发送者的数据了,在传输的过程中即使有拦截者拿到了发送者发送的数据以及接收者的公钥,他仍然不能得到原始内容的,因为只能用私钥进行解密,而私钥只有接收者有。如图中的流程:

1  ->  2  ->  3  ->  4  ->  5

 

第二种情况:对于第一种情况,想想就是天衣无缝了吗?肯定不可能的了,现在有这种情况,有一个hacker,他拦截到接收者发送给发送者的公钥,然后自己生成一对公钥和私钥,然后他把自己的公钥发送给发送者,当发送者拿到这个公钥的时候(实际上他以为这还是接收者发送给他的公钥),用这个公钥进行加密,然后发送给接收者,这时候hacker再次进行拦截,然后hacker拦截到数据后,就用自己的私钥进行解密,就得到了原始数据,而接收者得到内容之后解密是失败的,因为发送者发送的数据是用hacker的公钥进行加密的。如图中的流程:

1  ->  2(6  ->  7)  ->  3  ->  4(8  ->  9  ->  10)  ->  5

 

第三种情况:对于第二种情况的话,难道我们也就没有办法了吗?难道我们的信息只能无辜的被hacker进行读取吗?当然,道高一尺,魔高一丈,其实解决上面的问题的根本方法就是要让发送者相信他接收到的公钥是接收者发送的,而不是hacker发送的公钥。这个解决办法就是有一个中间的担保人,担保这个公钥是接收者的,同时接收者需要事前找到这个担保人说明一下。这时候就出现了一个机构:CA。这里的CA就是上面说到的担保人,这个机构一般是由政府机构管理的。接收者产生一对公钥和私钥,然后拿着公钥到CA机构认证说明一下,同时CA会颁发一份数字证书给接收者,其实这数字证书就是有CA认证之后的公钥。然后接收者就会将这份数字证书发送给发送者,当发送者拿到这份数字证书的时候,会先到CA机构去认证一下,确定公钥是不是接收者发送的。然后在用数字证书进行数据加密,发送给接收者。如图中的流程:

1  ->  11  ->  12  ->  13  ->  14  ->  5

 

第四种情况:对于第三种情况,难道hacker就没办法了吗?说到这里可能有人会说,hacker可以生成一对公钥和私钥,然后到CA机构认证拿到数字证书,然后再拦截。这里就要说说这个CA机构了,这个机构是由政府管理的,不是什么人什么机构想认证就能认证的,一般是银行,商业性的机构才有权认证,同时认证的时候也不是随随便便的,需要提供很多的信息的。这样一说你认为hacker有权利申请了吗?他敢申请吗?,所以这种方法就不行了。同时也说明了一点就是数字证书这东东可以防止hakcer拦截信息进而解密信息。但是hacker不解密信息,但是他仍然可以干坏事,他可以篡改信息。如下情景:hacker拦截了接收者发送给发送者的数字证书,然后在拦截发送者使用数字证书加密的数据,这时候不是为了解密,也解不了密,而是将这些信息保存或者丢弃,然后使用截取到的数字证书加密一段自己想发送给接收者的数据,然后发送给接收者,这时候,接收者收到的加密数据其实是hacker的,而不是发送者发送的,如图中的流程:

1  ->  11  ->  12(15)  ->  13  ->  14(16)  ->  5

 

第五种情况:对于第四种情况,难道我们有没有办法了吗?我们的信息就任hacker进行篡改,这肯定是不可能的,上有政策,下有对策。那我们该怎么办呢?解决的思路就是接收者要验证数据在传输的过程中没有被篡改过。那么这里又要说到一种技术:数字签名操作步骤:首先发送者也会生成一对公钥和私钥,同时向CA机构得到一份数字证书,同时这时候发送者将要发送的数据使用私钥进行加密A,同时使用私钥对数据的数据指纹(MD5)进行加密(数字签名)B,然后将A和B以及发送者的数字证书一起发送给接收者,接收者拿到数据之后:

第一步:然后向CA机构验证数字证书是不是发送者的,是的话,就用数字证书解密数据指纹(MD5)数据
第二步:使用数字证书解密发送者的数据
第三步:将第二步中得到的数据获取一下指纹,和第一步中获取到的数据指纹相比较,如果相等就表示发送内容没有被篡改,否则就被篡改了。

这样就可以防止信息发送的过程中防止被篡改了。

 

以上是介绍完了网络中传输数据中设计到的密码学的知识,下面就来介绍一下使用Tomcat来进行数字证书的配置:

首先我们使用java自带的一个命令生成一个密钥库keystore文件:

keytool -genkeypair -alias "tomcat" -keyalg "RSA"

这里需要给密钥库配置密码,然后是姓氏,这里面的这个姓氏就是给哪个网站配置数字证书,我们这里是localhost,这个信息一定要填写正确,不然没有效果的,其他的信息我们这里只做演示,所以可以不填的,按回车,最后输入y,这时候就会在你的本机用户目录中生成一个.keystore文件。这个就是密钥库文件了。

 

密钥库文件生成好了,接下来我们就来配置Tomcat文件了,找到server.xml文件,打开:

这时候我们将刚刚生成的.keystore放到conf文件夹下面,配置server.xml文件内容如上图所示,密码就是刚刚生成.keystore文件时敲入的密码。保存server.xml文件,然后重启tomcat

 

使用IE浏览器(Chrome看不到效果的),在地址栏中输入:

https://localhost:8443

这里一定要使用https协议了,因为是加密访问的,还有这里要使用8443端口了,因为我们要访问我们的数字证书的连接器,在浏览器中看到:

 

 

这时候IE浏览器会提示我们这个数字证书不是由CA机构颁发的,不可信(因为IE浏览器中集成了这种数字证书的检查机制),我们点击继续浏览此网站:

 

 

这时候就可以连接到了数字证书连接器,同时可以看到地址栏的右边多了一个图标:说是证书错误,我们点击这个图标,他再次弹出一个提示,说这个证书不可靠,我们不管他了,点击查看证书:

 

 

这时候他还是提示我们这个证书不安全,看到颁发者是localhost了,这时候我们点击安装证书,安装完成之后,到此为止我们就为我们自己的localhost网站安装了我们自己的localhost的数字证书了。这样用户在访问localhost网站的时候,用户提交的数据就会使用我们安装好的数字证书进行加密了。

 

总结:上面就大体上说了一下网络中传输数据中的相关加密的知识以及怎么使用tomcat配置一个数字证书。其实这些内容我们日常生活中都是会接触到的,最明显的例子就是网银了。你在访问银行网站的时候,他会提示你安装一下数字证书,这个就说明:该银行生成了一对公钥和私钥,然后到CA机构去认证一下得到了一份数字证书,然后在将这份数字证书配置到该网站上面即可。

作者: Candyメ奶糖

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
博文来源广泛,如原作者认为我侵犯知识产权,请尽快给我发邮件 359031282@qq.com联系,我将以第一时间删除相关内容。

目录
相关文章
|
27天前
|
安全 网络安全 数据安全/隐私保护
|
1月前
|
监控 安全 网络安全
云计算与网络安全:保护数据的关键策略
【9月更文挑战第34天】在数字化时代,云计算已成为企业和个人存储、处理数据的优选方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨云计算环境中的网络安全挑战,并提供一系列策略来加强信息安全。从基础的数据加密到复杂的访问控制机制,我们将一探究竟如何在享受云服务便利的同时,确保数据的安全性和隐私性不被侵犯。
65 10
|
2月前
|
存储 安全 网络安全
云计算与网络安全:守护数据,构筑未来
在当今的信息化时代,云计算已成为推动技术革新的重要力量。然而,随之而来的网络安全问题也日益凸显。本文从云服务、网络安全和信息安全等技术领域展开,探讨了云计算在为生活带来便捷的同时,如何通过技术创新和策略实施来确保网络环境的安全性和数据的保密性。
|
16天前
|
网络协议 Linux
图形界面配置网络
本文介绍了在Linux上配置网络服务的步骤。首先打开RHEL-01服务器,找到桌面网络配置选项,进入网络配置面板。点击面板右下角的小齿轮,进入有线配置面板,选择IPv4选项,将地址设置为手动。接下来配置IP地址、子网掩码、网关和DNS服务器。配置完成后,使用新的IP地址进行访问。
32 4
图形界面配置网络
|
15天前
|
网络虚拟化 数据安全/隐私保护 数据中心
对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令
本文对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令,帮助网络工程师更好地理解和使用这两个品牌的产品。通过详细对比,展示了两者的相似之处和差异,强调了持续学习的重要性。
29 2
|
16天前
|
网络协议 Linux
通用网卡配置文件配置网络
本文介绍了在RHEL 7系统中配置网络的方法。首先,通过编辑位于`/etc/sysconfig/network-scripts`目录下的网卡配置文件(例如`ifcfg-ens33`),设置静态IP地址、子网掩码、网关和DNS等参数。接着,使用`systemctl`命令重启网络服务,确保配置生效。此外,还介绍了使用`nmtui`图形界面工具进行网络配置的步骤,包括修改IP地址、保存配置和重启网络。最后,通过`ip addr`或`ifconfig`命令验证配置是否成功。
46 2
|
1月前
|
Java 应用服务中间件
面对海量网络请求,Tomcat线程池如何进行扩展?
【10月更文挑战第4天】本文详细探讨了Tomcat线程池相较于标准Java实用工具包(JUC)线程池的关键改进。首先,Tomcat线程池在启动时即预先创建全部核心线程,以应对启动初期的高并发请求。其次,通过重写阻塞队列的入队逻辑,Tomcat能够在任务数超过当前线程数但未达最大线程数时,及时创建非核心线程,而非等到队列满才行动。此外,Tomcat还引入了在拒绝策略触发后重新尝试入队的机制,以提高吞吐量。这些优化使得Tomcat线程池更适应IO密集型任务,有效提升了性能。
面对海量网络请求,Tomcat线程池如何进行扩展?
|
22天前
|
存储 安全 网络安全
云计算与网络安全:保护数据的新策略
【10月更文挑战第28天】随着云计算的广泛应用,网络安全问题日益突出。本文将深入探讨云计算环境下的网络安全挑战,并提出有效的安全策略和措施。我们将分析云服务中的安全风险,探讨如何通过技术和管理措施来提升信息安全水平,包括加密技术、访问控制、安全审计等。此外,文章还将分享一些实用的代码示例,帮助读者更好地理解和应用这些安全策略。
|
27天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:从漏洞到加密,保护数据的关键步骤
【10月更文挑战第24天】在数字化时代,网络安全和信息安全是维护个人隐私和企业资产的前线防线。本文将探讨网络安全中的常见漏洞、加密技术的重要性以及如何通过提高安全意识来防范潜在的网络威胁。我们将深入理解网络安全的基本概念,学习如何识别和应对安全威胁,并掌握保护信息不被非法访问的策略。无论你是IT专业人士还是日常互联网用户,这篇文章都将为你提供宝贵的知识和技能,帮助你在网络世界中更安全地航行。
|
30天前
|
存储 安全 网络安全
云计算与网络安全:如何保护您的数据
【10月更文挑战第21天】在这篇文章中,我们将探讨云计算和网络安全的关系。随着云计算的普及,网络安全问题日益突出。我们将介绍云服务的基本概念,以及如何通过网络安全措施来保护您的数据。最后,我们将提供一些代码示例,帮助您更好地理解这些概念。
下一篇
无影云桌面