申请https证书

引入证书:

当服务器使用HTTPS之前都会申请一份证书,证书是为了证明服务端公钥的权威性,服务器向浏览器传输证书,浏览器再从证书里获取公钥,
证书=明文数据+签名。

如何理解CA签发证书的过程

a.CA会有自己的公钥 和 私钥(CA独有) CA CA*

b.CA会公布CA的公钥 我们的客户端必须内置CA公钥

c.我们的浏览器只认CA的公钥,也就意味着只有CA有着签发证书的权利

首先服务端向CA提交自己的企业信息申请认证证书,CA审查后,对企业的明文信息用哈希或其他的方法形成数据指纹,CA用自己的私钥对数据指纹加密形成签名,这个签名由于只有CA拥有私钥,所以无法生成第二个签名。CA再将签名和明文信息放在一起,形成证书。再签发给服务端,
证书里的明文,中间人不是也可以去获获取篡改?

思考一下,假设我们是中间人,我们肯定是像方案四一样,再客户端得到服务端的公钥之前就把服务端的公钥改成自己的公钥,如果不在客户端得到之前改,那么客户端一得到服务端的公钥 S ,就传递S+P(客户端公钥)给服务端,此时中间人再怎么样也得不到客户端的公钥P了,此后服务端与客户端开心的用P加密用P解密,也就无懈可击了。所以重点是中间人是要去篡改服务端公钥,换成自己的公钥

a.CA会有自己的公钥 和 私钥(CA独有) CA CA*

b.我们的客户端必须内置CA公钥

c.我们的浏览器只认CA的公钥,也就意味着只有CA有着签发证书的权利

中间人假设去改公钥,但是客户端对照一下数据指纹,发现明文数据形成的数据指纹与签名解密出的数据指纹不一样,就会发现内容被改了,

那如果去改签名再去改数据,此时,签名被改了,当客户端用CA的公钥对签名进行解密,发型客户端根本无法解密,自然也就发现签名被改了

那改证书呢,那把证书向CA申请证书再换成自己的证书,一是自己企业信息暴漏,二是在明文信息中有域名,当浏览器识别到中间人证书域名跟自己请求访问服务器的域名不一样,也就发现证书被换了。

所以中间人想篡改服务端的公钥,就不能得逞了。

相关推荐
岸边的风3 小时前
无需公网IP的文件交互:FileCodeBox容器化部署技术解析
网络·网络协议·tcp/ip
世事如云有卷舒3 小时前
Ubunt20.04搭建GitLab服务器,并借助cpolar实现公网访问
linux·服务器·gitlab
Little-Hu4 小时前
QML TextEdit组件
java·服务器·数据库
2501_915374354 小时前
UDP vs TCP:核心差异与应用场景全解析
网络协议·tcp/ip·udp
Edingbrugh.南空4 小时前
操作系统级TCP性能优化:高并发场景下的内核参数调优实践
网络协议·tcp/ip·性能优化
riverz12274 小时前
TCP backlog工作机制
服务器·网络·tcp/ip
2401_858286114 小时前
OS15.【Linux】gdb调试器的简单使用
linux·运维·服务器·开发语言·gdb
yqcoder4 小时前
1. http 有哪些版本,你是用的哪个版本,怎么查看
网络·网络协议·http
c30%006 小时前
内网渗透——红日靶场五
运维·服务器
宇钶宇夕6 小时前
EPLAN 电气制图:建立自己的部件库,添加部件-加SQL Server安装教程(三)上
运维·服务器·数据库·程序人生·自动化