SSL⼯作流程
SSL协议位于TCP/IP协议与各应⽤层协议之间,为数据通讯提供安全⽀持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol)、SSL握⼿协议(SSL Handshake Protocol)
SSL握⼿协议:在SSL记录协议之上,会话层之下,在实际的数据传输开始前,协商加密算法、交换密钥、⾝份认证
1. 客户端浏览器发送“hello”信息,表⽰要和⽹站建⽴安全SSL连接
2. ⽹站服务器响应客户端请求,发给客户端两样东西:⽹站服务器⾃⼰的证书(内含⽹站的公钥)、⼀个随机值
3.客户端浏览器验证⽹站服务器证书是否可信
4.客户端利⽤⽹站服务器发的随机值⽣成会话密钥
5. 客户端浏览器和⽹站服务器开始协商加密算法和密钥长度
6. 协商成功后,客户端浏览器利⽤⽹站的公钥将⽣成的会话密钥加密,然后传送给⽹站服务器
7. ⽹站服务器收到客户端发送的利⽤⽹站服务器⾃⼰公钥加密的会话密钥,然后⽤⾃⼰的私钥解密出会话密钥,由此得到了安全的会话密钥
8. ⽹站服务器再随机⽣成⼀个信息,⽤解密后的会话密钥加密该随机信息后后发送给客户端浏览器(⽬的是让客户端认证服务器)
9. 浏览器收到随机信息后,⽤会话密钥能解密出信息(⾃然就认证了服务器),接着浏览器⽤⾃⼰的私钥对此信息做数字签名,连带客户端⾃⼰的证书(内含公钥),⼀起发送给⽹站服务器(⽬的是让服务器认证客户端)
SSL记录协议:在SSL握⼿协议之下,传输层之上,数据传输阶段的封装、压缩、加密(利⽤SSL握⼿协议产⽣的会话密钥对称加密应⽤层数据)
1.使⽤ssl访问apache服务器
进⼊配置⽂件,创建f
[root@localhost ~]# cd /etc/httpd/conf.d
[root@localhost conf.d]# ls
[root@localhost conf.d]# vim f
编辑配置⽂件
<Directory "/www/https">
AllowOverride None
Require all granted
</Directory>
ssl协议全称Listen 8002
<VirtualHost 192.168.179.200:8002>
DocumentRoot "/www/https"
ServerName 192.168.179.200
SSLEngine on
SSLProtocol all -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile /etc/pki/tls/
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
</VirtualHost>
编辑This is my https重定向到/www/https/index.html
[root@localhost https]# echo "This is my https" > /www/https/index.html
[root@localhost https]#
重启服务器
[root@localhost https]# systemctl restart httpd
[root@localhost https]#
会出现此界⾯,说明我们的ca证书不够⾼级,点击⾼级继续访问
成功访问
2.配置不同端⼝访问apache服务器
⾸先在/www/port/下创建两个⽬录80和8000
在80的index.html编辑the port is 80
在8000的index.html编辑the port is 8000
[root@localhost https]#mkdir -p /www/port/{80,8000}
[root@localhost https]#
[root@localhost ~]# echo the port is 80 > /www/port/80/index.html [root@localhost ~]# echo the port is 8000 > /www/port/8000/index.html
进⼊/etc/httpd/conf.d
在f中配置,保存后退出
<Directory "/www/port">
AllowOverride None
Require all granted
</Directory>
<VirtualHost 192.168.179.131:80> DocumentRoot "/www/port/80" ServerName 192.168.179.131
</VirtualHost>
Listen 8000
<VirtualHost 192.168.179.131:8000> DocumentRoot "/www/port/8000" ServerName 192.168.179.131
</VirtualHost>
重启服务
[root@localhost conf.d]# systemctl restart httpd [root@localhost conf.d]#
访问ip 80端⼝ 和8000端⼝
访问成功

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。