HTTPS认证一:认证原理

HTTP超文本传输协议用于在web浏览器和网站服务器之间传递信息,有以下缺点:

1、通信使用明文,内容可能被窃听

2、不验证对方的身份

3、无法验证报文的完整性

所以HTTPS就来了,其中S代表SSL或者TLS,就是在原来HTTP的基础上加上一层用于数据加密、解密、身份认证的安全层,所以:

HTTP+加密+认证+完整性保护 = HTTPS

加密:

对称加密:加密和解密使用同一个密钥,特点时速度快,效率高,常见算法AES

非对称加密:加密和解密使用不同的密钥,分别叫私钥和公钥,数据使用私钥加密后必须使用公钥解密;使用公钥加密后必须使用私钥解密。

一般来说私钥自己保存好,公钥发布出去,这种方式的缺点是速度慢,常见的是RSA算法,一般用于交换对称加密的密码。

 

CA证书

CA证书是由CA机构发布的数字证书,内容包括电子签证机关的信息、公钥用户信息、公钥、签名和有效期:

证书 = 公钥 + 签名 + 申请者和颁发者的信息

 

HTTPS单向认证过程:

后面文章会讲到部署方法,部署时候会在服务端放服务器的证书server.crt(包含公钥)和私钥server.key,其中server.crt是通过CA机构颁发的,颁发时会有认证机构的根证书ca.crt;

会在客户端放CA的根证书ca.crt用来校验服务端的证书。

(1)客户端发起HTTPS请求,将SSL协议版本的信息发送给服务端。

(2)服务端CA证书server.crt发送给客户端

(3)客户端读取CA证书的明文信息,采用相同的hash散列函数计算得到信息摘要,然后用CA的公钥去解密签名(因为签名是用CA的私钥加密的),对比证书中的信息摘要。如果一致,则证明证书是可信的,然后取出了服务端公钥。

(4)客户端生成一个随机数(密钥F),用刚才等到的服务端公钥去加密这个随机数形成密文,发送给服务端。

(5)服务端用自己的私钥去解密这个密文,得到了密钥F

(6)服务端和客户端在后续通讯过程中就使用这个密钥F进行通信了。和之前的非对称加密不同,这里开始就是一种对称加密的方式

 

HTTPS双向认证

部署时候会在服务器中存放server.crt, server.key, ca.crt(用来验证客户端身份)

客户端会存放client.crt, client.key, ca.crt

 

双向认证和单向认证差不多,多了一步服务器验证客户端的身份:

(1)客户端发起HTTPS请求,将SSL协议版本的信息发送给服务端。

(2)服务端CA证书server.crt发送给客户端

(3)客户端读取CA证书的明文信息,采用相同的hash散列函数计算得到信息摘要,然后用CA的公钥去解密签名(因为签名是用CA的私钥加密的),对比证书中的信息摘要。如果一致,则证明证书是可信的,然后取出了服务端公钥。

(4)客户端发送自己的客户端证书client.crt(包含客户端公钥),并告知支持的加密方式

(5)服务器收到client.crt后验证,验证通过后得到公钥,通过公钥加密选择的加密方式告知客户端

(6)客户端收到加密方式后,使用私钥解密,并生成一个随机数(密钥F),用服务端公钥去加密这个随机数形成密文,发送给服务端。

(7)服务端用自己的私钥去解密这个密文,得到了密钥F

(8)服务端和客户端在后续通讯过程中就使用这个密钥F进行通信了。和之前的非对称加密不同,这里开始就是一种对称加密的方式

HTTPS认证二: openssl生成证书及签名 :https://blog.csdn.net/egbert123/article/details/103831808

HTTPS认证三:用docker搭建nginx https服务器https://blog.csdn.net/egbert123/article/details/103832083

HTTPS认证四:使用开源libcurl进行SSL双向认证https://blog.csdn.net/egbert123/article/details/103832664

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值