1、apache的加密访问
(1)什么是HTTP?
超文本传输协议, 是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。
超文本:“超文本"和"文本"相比多了一个字"超”,这样看来比文本丰富,因为它可以将多种文本/图像等进行混合,更重要的是可以从一个文本跳转到另一个文本(文本链接)。
传输: 传输的过程中需要沟通,沟通即可能一对一沟通也可能一对多沟通(进行内容协商),无论怎么样,参加沟通的人数>1,想尽一切一切办法更快更好的完成相应的任务。
协议: 无规矩不成方圆,做机密项目之前需要签署保密协议,找工作要签"三方协议",三方协议是学校,公司,和个人组成的协议,都是为了让大家受一定的约束,违反了即有相应的惩罚。
(2)安全四要素:
机密性
对信息进行保密,只能可信的人可以访问(让我想起时间管理者)。
完整性
数据在传输过程中内容不被"篡改"。虽然机密性对数据进行保密了,但是有上策也有下策(hack)
身份认证
证明自己的身份是本人,保证其消息发给可信的人
不可否认
君子一言驷马难追,说话算数,说过的话做过的事要有所保证
(3)什么是HTTPS?
HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
(4)什么是SSL证书?
SSL证书又称服务器证书,HTTPS证书等,是数字证书的一种,其主要功能是验证网站的真实身份,并加密访问者发送和接收到的信息,可以防止用户和网站之间的通信被不法分子监听、窃取和篡改。
在过去,只有一些需要输入敏感信息或密码的网站才会部署SSL证书实现HTTPS加密。随着互联网的发展,人们也越来越意识到网络安全的重要性,因此,越来越多的网站不论是否需要输入敏感信息,都会选择部署SSL证书实现HTTPS加密。
(5)为什么网站加密访问很重要?
这是因为加密后访问更加安全,很多网站的访问都是加密访问,比如访问百度时,输入网址 www.baidu.com(实质上是 https://www.baidu.com)。
1、HTTPS可以保护网站的完整性
HTTPS是安全套接层超文本传输协议,可以保证网站的信息从用户浏览器到服务器之间的传输是高强度加密传输的,是不会被第三方窃取和篡改的。还能避免网站被劫持而插入广告等,防止被钓鱼网站攻击,从而保护网站的安全性和完整性。
2、HTTPS能保护用户的隐私及安全
在HTTP网站数据以明文方式传输,客户的隐私极容易被盗取和泄露,而部署SSL证书,数据以HTTPS加密传输,可以保护通信不被第三方监听和窃取,从而保护用户隐私及安全。还可增加用户信任感和提升企业形象。
3、各大浏览器鼓励网站使用HTTPS
谷歌等主流浏览器会对HTTP的网站发出“不安全”的警告,这会极大的影响用户对网站的信任度,甚至造成潜在客户的流失。而部署SSL证书实现HTTPS加密就可消除这种“不安全”的警告,在互联网时代,赢得客户的信任至关重要。
4、有助于增加SEO排名
搜索引擎更加青睐https加密的网站,https 的网站在搜索引擎中的排名表现更好。谷歌和百度都明确表示会优先收录https的网站,这将大大增加客户找到你的可能性。
(6)HTTP和HTTPS的关系
2、apache的ssl模块添加
1).安装ssl
[root@server1 cgi-bin]# yum search http
[root@apache-server ~]# yum install -y mod_ssl
root@apache-server ~]# cd /etc/httpd/conf.d/
##ssl.conf为ssl服务的主配置文件
[root@apache-server conf.d]# ls
2).重启apache
[root@apache-server conf.d]# systemctl restart httpd
添加防火墙策略
[root@server1 conf.d]# firewall-cmd --add-service=https --permanent
[root@server1 conf.d]# firewall-cmd --reload
查看https监听端口
[root@server1 conf.d]# vim ssl.conf
(3).网页测试
输入: https://172.25.254.134
这是当你访问apache时,系统自动生成证书。
那么如何制作自己的证书呢?
2).利用自己制作的证书实现apache的加密访问
(1).先删除系统生成的证书
(3).制作证书和key
[root@server1 conf.d]# openssl genrsa -out /etc/httpd/conf.d/www.westos.com.key 2048
[root@server1 conf.d]# openssl x509 -req -days 365 -in /etc/httpd/conf.d/www.westos.com.csr -signkey /etc/httpd/conf.d/www.westos.com.key -out /etc/httpd/conf.d/www.westos.com.crt
####虚拟主机的建立以及和证书关联
[root@server1 conf.d]# vim ssl.conf
4)重启apache
[root@apache-server conf.d]# systemctl restart httpd
(5).网页测试
在浏览器测试主机上做解析:
[root@server1 conf.d]# vim /etc/hosts
输入: https://www.westos.com
那如果想要实现直接输入ip便能自动跳转到https加密,该如何操作呢?
3.构建https设定网页重写(http—>https)
在没有配置之前,我们看看直接访问80端口是什么结果:
##1.编写子配置文件,在上一个实验前提下,添加以下部分
[root@apache-server conf.d]# pwd
/etc/httpd/conf.d
[root@apache-server conf.d]# vim ssl.conf
注释:
^(/.*)$ | 表示客户端在浏览器地址栏中输入的所有字符 |
---|---|
https:// | 强制客户加密访问 |
%{HTTP_HOST} | 客户请求主机 |
$1 | 表示^(/.*)$的值 |
[redirect=301] | 永久重写;302是临时转换 |
当访问80端口时,自动跳转到443端口上(http---->https)
##2.重启apache
[root@apache-server conf.d]# systemctl restart httpd
网页测试:
输入:www.westos.com