Apache的加密访问
1.HTTPS的作用
HTTP的缺点:
(1)通信使用明文,内容可能被窃听
(2)不验证通信方身份,因此有可能遭遇伪装
(3)无法验证报文的完整性,所有有可能已篡改
http + 加密 + 认证 + 完整性保护 = https
通常情况下http是直接和tcp层进行通信的。当使用ssl(安全套阶字)时,则演变成http先和ssl通信,ssl再和tcp通信的了。
ssl采用的是公钥加密,https采用混合加密机制。
(1)使用对称加密的缺点
对称密钥易被截取
(2)采用公钥加密
(3)https混合加密
公开密钥需要认证
2.加密访问的含义
访问百度时,输入网址 http://www.baidu.com
自动跳转到 https://www.baidu.com
3.实验步骤
第一个实验:生成证书
(1)安装mod_ssl包
发现子配置目录中出现了ssl.conf文件
(2)生成私钥
使用 man openssl genrsa 指令查看帮助,发现默认生成的private key是2048位的。
(3)生成证书请求
-new:新的请求
-key:使用私钥文件
-out:待输出文件
.csr:证书签证请求
(4)生成证书
x509:证书类型为x509
-req:请求签发证书
-days:证书的有效时间
-in:待处理文件
-signkey:证书为私钥做签证
-out:待输出文件
(5)编辑/etc/httpd/conf.d/ssl.conf文件
(6)查看证书的信息
在rehl7中访问https://192.168.145.100
发现使用https可以正常访问了
第二个实验:网页重写
对于一些需要和用户交互的网站,需要使用apache的加密方式(会延长加载时间),而对于一些门户型网站,是不需要的。因此我们需要有选择的进行加密 。
(1)准备
在apache服务器rehl8(192.168.145.100)中
在客户端rehl7中
(2)新建/etc/httpd/conf.d/virthost.conf文件
登录需要加密,要使用443端口,因此记得在访问时需要输入https://login.lyueyue.com。
(3)在rehl7中访问
经过下载证书等一系列步骤(参前) 我们可以成功访问。
如何在我们输入login.lyueyue.com(使用80端口)的时候自动跳转到https://login.lyueyue.com(使用443端口)呢?这就是网页重写,当我们输入某个域名时,自动跳转到https访问。
(4)编辑/etc/httpd/conf.d/virthost.conf文件
^(/.星) $ :客户在浏览器上输入的字符
%{HTTP_HOST}:表示客户主机
$1:表示 ^(/.星) $的值
给用户输入的地址前加上https
(5)在rehl7中测试
输入login.lyueyue.com发现自动跳转到https:// login. lyueyue. com
Apache+Squid
1.Squid的作用: Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。
2.Squid正向代理
实验环境:
单网卡虚拟机2设定ip不能上网
双网卡虚拟机1设定ip1可以连接单网卡主机,设定ip2可以上网
实验效果:
让单网卡虚拟机2不能上网但浏览器可以访问互联网页
实验步骤:
(1)设定虚拟机2的网络使其不能上网
发现虚拟机2中没有安装apache且不能上网
(2)设定虚拟机1的网络
发现虚拟机1安装了apache,可以上网并且可以ping通虚拟机2。
(3)在双网卡虚拟机1中安装squid
(4)修改/etc/squid/squid.conf文件
http_access:访问控制
cache_dir:存储机制是ufs,在/var/spool/squid下建立缓存目录,一级目录16个,二级目录256个,缓存大小不超过100M,否则会将原来的缓存覆盖掉。
配置前/var/spool/squid下没有东西
(5)更改虚拟机1防火墙
(6)在虚拟机2中设置代理
(7)在虚拟机2中测试
发现不能ping通百度,但是可以通过浏览器访问百度。
3.Squid反向代理
实验环境:
虚拟机1(192.168.145.100):Apache服务器
虚拟机2(192.168.145.101):没有安装Apache服务器,安装Squid,没有数据,负责缓存。
虚拟机3(192.168.145.7):客户主机
实验步骤:
(1)准备
在虚拟机1中
在虚拟机2中
(2)编辑虚拟机2中/etc/squid/squid.conf文件
使用80端口,这个端口squid没有,是借用apache的,vhost表示支持虚拟主机,vport表示支持虚拟端口。
cache_peer:当虚拟机2的80端口(63行指定)被访问,会从虚拟机1(ip为192.168.145.100、身份是父级即资源主机)的80端口缓存数据,其中0表示没有同伴(备份),proxy-only表示只做代理。
(3)开启虚拟机2防火墙的80端口
(4)在虚拟机3中测试
配置成功🍓
补充: 可以查看squid的帮助文档