Apache(二)——Apache的加密访问以及squid

一.Apache的加密访问

客户主机和服务器主机进行通信时,传输的信息如果未加密的话很容易被别人截获并且利用,这样是很不安全的,所以我们要将有些通信的数据进行加密,那么怎么进行加密呢。通俗地讲,服务器需要生成一把钥匙(私钥),然后将锁(公钥)发给客户,但是锁不是任何人都可以给用户的,所以锁上会有证书,证明锁是谁发的,这种加密的传输方式就叫https。
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性[1]。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面

比如:查看百度的证书
可以看到百度默认支持https
在这里插入图片描述
在这里插入图片描述

查看百度的证书如下:
在这里插入图片描述
证书并不是随便发布的,是由CA机构进行发布的,比如我们的主机就不能直接加密访问
SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装服务器证书就可以激活该功能了),即通过它可以激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露,保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。

在这里插入图片描述

安装插件:dnf install mod_ssl -y,装好插件后可以看到生成了ssl.conf文件,然后重启Apache服务
在这里插入图片描述
再次去访问时会显示连接的网站不安全,因为该网站的证书没有经过CA机构的检测,我们可以通过以下方式查看该网站的证书
在这里插入图片描述
在这里插入图片描述
那我们怎么去生成自己的证书
先删掉刚才已经加载的系统默认生成的证书
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自己生成证书

1、
openssl genrsa -out /etc/pki/tls/private/www.weiwei.com.key 2048 
#生成私钥
openssl req -new -key /etc/pki/tls/private/www.weiwei.com.key \  -out /etc/pki/tls/certs/www.weiwei.com.csr 
#生成证书签名文件
openssl x509 -req -days 365 -in \ /etc/pki/tls/certs/www.weiwei.com.csr \ -signkey /etc/pki/tls/private/www.weiwei.com.key \ -out /etc/pki/tls/certs/www.weiwei.com.crt  -signkey /etc/pki/tls/private/www.weiwei.com.key
#生成证书
其中:x509 :证书格式  -req :请求  -in :加载签证名称

vim /etc/httpd/conf.d/virtualhost.conf
写入内容:
<virtualHost *:80>
	ServerName login.weiwei.com
	RewriteEngine on
	RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1
</virtualHost>

<virtualHost *:443>
	ServerName login.weiwei.com
	DocumentRoot "/www/weiwei.com/login"
	CustomLog logs/login.log combined
	SSLEngine on
	SSLCertificateFile /etc/pki/tls/certs/www.weiwei.com.crt
	SSLCertificateKeyFile /etc/pki/tls/private/www.weiwei.com.key
</virtualHost>

<Directory "/www">
	Require all granted
</Directory>

systemctl restart httpd
注意,其中:
^(/.*)$ 		#客户地址栏中输入的地址
%{HTTP_HOST} 		#客户主机
$1 			#RewriteRule后面跟的第一串字符的值

在这里插入图片描述

在这里插入图片描述
编辑文件:vim /etc/httpd/conf.d/virtualhost.conf
在这里插入图片描述
访问login.weiwei.com可自动跳转到https进行加密
在这里插入图片描述
访问文库的页面依然不会调整

在这里插入图片描述

二.Squid+Apache

问:为什么引入squid?
答:比如我们在中国的时候,无法访问外国的某些网站,那如果我们想去看该网站上的内容,找一个可以访问那些网站的代理服务器,让代理服务器访问我们需要的内容然后缓存到它自己的主机,我们就可以通过访问代理服务器从而看到网站上的内容
问:Squid是什么?
答:squid是一款高性能的代理缓存服务器,可以理解为一款“翻墙”软件(通俗理解为代购)
外文名:squid
用途:用来缓冲Internet数据
支持协议:FTP、gopher和HTTP协议等
运行系统:Windows,AIX,Unix等
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
问:squid原理是什么?
答:squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

squid 正向代理

原理图:
在这里插入图片描述
实验环境:
单网卡主机:
ip:172.168.0.110,该IP不能上网
双网卡主机:
ip1:172.168.0.111
ip2:192.168.0.111
设定ip1可以连接单网卡主机,设定ip2可以上网
实验模拟:
让单网卡主机不能上网(ping不通),但浏览器可以访问互联网网页即可代理成功
实验过程:

1、在双网卡主机中安装squid
dnf install squid -y
2、修改配置文件
vim /etc/squid/squid.conf
然后重启服务
systemctl restart squid 
3、修改双网卡主机的防火墙规则,使其打开3128端口
firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload
4、在单网主机中做一些设置,具体如下图

1、安装squid并重启
在这里插入图片描述
2、修改squid的配置文件的第59、65行
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
3、修改防火墙,打开3128端口
在这里插入图片描述
4、打开单网卡主机的浏览器然后进行一些设置,如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
测试:单网卡主机ping百度是ping不同的(单网卡主机不能上网),但是却可以在浏览器中访问百度(实际访问的是代理服务器的网页)
在这里插入图片描述

squid反向代理

问:什么是反向代理呢?
答:其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器(这也是反向代理名称的由来)。实施反向代理(如下图),只要将xi‘an-server设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是xi‘an-server的IP地址,而非原始Web服务器的IP地址,这时xi‘an-server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。

squid反向代理原理图:
在这里插入图片描述

实验环境:
主机一(WEB服务器):rhel8的IP:192.168.0.111 为Apache服务器
主机二(xi’an-server):rhel7的IP:192.168.0.110 装有squid服务,没有Apache服务,主机中没有数据,负责缓存,当客户主机要访问web服务器上的数据时,该主机负责将数据拿来,然后缓存到自己的主机中,当再次有主机要访问该数据时直接拿出即可
实验过程:
为了更明显的观察实验结果,在主机1中的默认访问位置写入证明主机1身份的内容,如下:
在这里插入图片描述
在主机二中:

1、修改主机二的squid服务的配置文件,使其成为反向代理
vim /etc/squid/squid.conf

http_port 80 vhost vport 	
#80:客户在访问服务器时都访问的是80端口,所以此处端口用80
#vhost:支持虚拟域名 vport:支持虚拟端口
#当192.168.0.110的80端口被访问会从192.168.0.111的80端口缓存数据
cache_peer 192.168.0.111 parent 80 0 proxy-only
#编写此处时可参照squid的帮助文档:/usr/share/doc/squid
#cache_peer:缓存路径 192.168.0.111:资源主机 80:资源主机的80端口 proxy-only:只做代理


systemctl restart squid 
2、开启主机二的80端口,以便客户主机的访问
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

1、
在这里插入图片描述
2、
在这里插入图片描述
测试:
浏览器访问192.168.0.110主机看到的是192.168.0.111上的数据
在这里插入图片描述
结束!!!

猜你喜欢

转载自blog.csdn.net/weixin_46138661/article/details/105018298