RHCE(三)SSL认证(Linux上搭建https服务)

https产生的原因

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。

什么是https

HTTPS——超文本传输安全协议,是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS:transport layer security安全传输套接层)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。

SSL协议位于 TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:

  • SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
  • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL提供服务,两种加密方式

  • 对称秘钥:公钥==私钥(加密、解密)——数据通讯
  • 非对称秘钥:公钥(加密)!=私钥(解密)——身份验证

CA认证

客户机正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输过程中,真正的公开密钥已经被攻击者替换掉了。这个时候就需要第三方公证单位——CA认证

CA就是一个公认的公证单位,你可以自行产生一把密钥且制作出必要的证书数据并向CA单位注册,那么当客户端的浏览器在浏览时,该浏览器会主动向CA单位确认该证书是否为合法注册过,如果是,那么该次连接才会建立,如果不是,浏览器会发出警告信息,告知用户应避免建立连接。

证书发放过程

  1. 服务器把自己的公开密钥登录至数字证书认证机构。
  2. 数字证书认证机构用自己的私有密钥向服务器的公开密钥署数字签名并颁发公钥证书。
  3. 客户端拿到服务器的公钥证书后,使用数字签名认证机构的公开密钥,向数字证书认证机构验证公钥证书上的数字签名,以确认服务器的公开密钥的真实性。
  4. 使用服务器的公开密钥对报文加密后发送。
  5. 服务器用私有密钥对报文解密。

https 的建立过程

整体来说有三个阶段:
1、客户端验证服务器(CA证书验证)
2、服务器验证客户端(非对称秘钥)
3、对称秘钥实现是数据传输(对称秘钥)

具体过程,话不多说,直接上图

基本就这过程,这个图已经显示的很详细了。

Linux上搭建https服务

1、安装mod_ssl,mod_ssl是一种以openssl 的工具箱为基础专门为apache webserver 提供密码保护的软件。

#yum install mod_ssl -y

2、修改配置文件

#vim /etc/httpd/conf.d/vhosts.conf

文件内容
在这里插入图片描述
制作证书
在这里插入图片描述
依次要输入的内容:
1、密码
2、确认密码
3、输入刚才的密码
4、国家代码
5、省份
6、城市
7、公司名称
8、部门
9、真实域名
10、电子邮件

重启服务#systemctl restart httpd 时需要输入证书密码,通过浏览器访问时,会提示此网站安全证书有问题,因为是自己制作的。

发布了94 篇原创文章 · 获赞 92 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43624033/article/details/105137662