HTTPS SSL/TLS 详解


一、HTTPS是什么

  在说 HTTPS 之前先说说什么是 HTTP,HTTP 就是我们平时浏览网页时候使用的一种协议。HTTP 协议传输的数据都是未加密的,也就是明文的,因此使用 HTTP 协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了 SSL(Secure Sockets Layer)协议用于对 HTTP 协议传输的数据进行加密,从而就诞生了 HTTPS。

  HTTPS 主要由两部分组成:HTTP + SSL / TLS,也就是在 HTTP 上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过 TLS 进行加密,所以传输的数据都是加密后的数据。

二、SSL/TLS 协议

  SSL/TLS协议实际上最初叫做SSL协议(Secure Sockets Layer,安全套接字层),是由网景(Netscape)公司在1990年推出的一种标准安全协议,是基于公钥密码体制和X.509数字证书技术,为网络通信提供身份认证以及数据传输保密性、完整性的一种安全协议。

  TLS(Transport Layer Security,传输层安全)是 IETF组织 (工程任务组)在1999年将SSL3.0协议规范进行了标准化。由于SSL和TLS之间存在加密算法上的差异,因此不能互相操作,所以是两个不同的协议。
  SSL/TLS均可提供身份认证、机密性和完整性服务,虽然SSL系列的所有版本都已经弃用,TLS作为SSL的后续版本,大家依然习惯使用SSL的叫法。

三、对称加密和非对称加密

对称加密:是指加密和解密使用相同的密钥的加密算法。它的加密原理是将明文 (输入的机密信息) 通过密钥进行加密,然后再将加密后的密文发送出去。接收方收到密文后,使用相同的密钥进行解密,从而获得明文。对称加密的优点在于速度快,加密强度高,且密钥管理简单。但是,它也存在缺点,例如密钥管理不当会导致密钥泄露,攻击者可以轻松地破解加密信息。

非对称加密:是指加密和解密使用不同的密钥的加密算法。它的加密原理是将明文通过非对称密钥进行加密,然后再将加密后的密文发送出去。接收方收到密文后,使用对称密钥进行解密,从而获得明文。非对称加密的优点在于加密强度高,攻击者需要付出极大的代价才能破解加密信息,而且密钥管理简单。但是,它也存在缺点,例如由于非对称密钥较长,加密速度较慢,且密钥管理不当会导致密钥泄露。

SSL/TLS :协议是基于这两种加密方式共同实现的混合加密,非对称加密实现密钥(对明文进行加密)的交换,用生成的对称密钥加密明文进行传输

加密过程: 在TCP建立链接之后,

  1. client发起请求(端口是443)
  2. server 收到后返回service的公钥和证书
  3. client验证证书
  4. client生成对称密钥发送给server(现实不是直接发送密钥,而是发送生成密钥的参数的算法,这里不影响理解过程)
  5. server收到密钥用自己的私钥解密,获取对称密钥
  6. C/S使用对称密钥加密解密明文发送

四、证书 和证书颁发机构CA

SSL证书是一种配置在服务器上数字证书,也被称为SSL服务器证书。其遵守 SSL协议,通过受信任的数字证书颁发机构CA(Certificate Authority)。当用户访问一个网站时,浏览器会检查网站的CA证书,以确认该网站是否由一个受信任的CA签发。如果CA证书有效且可信,则浏览器会显示一个锁形状的图标,表示该网站是安全的。

五、创建自证证书

  openssl 是目前最流行的 SSL 密码库工具,采用C语言开发,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS 协议的实现。openssl提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。openssl支持Linux、Windows、BSD、Mac等平台具有广泛的适用性。

  1. 生成服务端私钥(需要输入密码)
openssl genrsa -des3 -out server.key 2048

在这里插入图片描述

  1. 生成服务端证书请求文件
openssl req -new -key server.key -out server.csr

这个地方需要输入一些数据
![在这里插入图片描述](https://img-blog.csdnimg.cn/39bcbd7a157e4cf1b3a42b12ab30e173.png
3. 生成CA私钥

openssl genrsa -out ca.key 2048
  1. 生成CA待签名证书 (输入是和第二步一样
openssl req -new -key ca.key -out ca.csr
  1. 生成CA根证书
openssl -req x509 -in ca.csr -extensions v3_ca -signkey ca.key -out ca.crt  
  1. 对服务器证书签名
openssl -req x509  -in server.src  -extensions v3_req -CAKey ca.key -CA ca.crt -CAcreateserial -out server.crt -day 365

现在将自证证书导入到浏览器,再请求就是受信任的证书了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值