apache 从http到https

1.什么是apache(web服务器)

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行
Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上
由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,也叫网页服务器软件 
它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中

2.什么是Http://协议

 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写
是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议
HTTP是基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统
HTTP协议工作于客户端-服务端架构为上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求
Web服务器根据接收到的请求后,向客户端发送响应信息

HTTP工作原理:

 HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端
 HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据
 服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

HTTP请求/响应步骤:

1、客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.baud.com
2、发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
3、服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。
一个响应由状态行、响应头部、空行和响应数据4部分组成。
4、释放连接TCP连接
若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
5、客户端浏览器解析HTML内容
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
其实也是把服务端的东西共享给客户端的一个过程
协议的支撑 <-----软件 <-----程序
协议是两个人共同商量好的东西
curl -I www.baidu.com 查看网址的服务名字
两大主流服务:
lamp linux apache mysql php/perl/python
lnmp linux nginx mysql php/perl/python
客户端访问aoache服务,然后加在php这个插件,然后调用mysql数据库
apache,企业中常用的web服务,用来提供http:// 

3.apache的基础信息

主配置目录/etc/httpd/conf
主配置文件/etc/httpd/conf/
子配置目录/etc/httpd/conf.d/
子配置文件/etc/httpd/conf.d/*.conf
默认发布目录/var/www/html
默认端口80
默认安全上下文httpd_sys_content_t
程序开启默认用户apache
apache日志/etc/httpd/logs/*

4.搭建实验环境
reset desktop虚拟机
配置ip为172.25.254.115,在此虚拟机上,搭建apache-web服务器,安装httpd服务,开启,并且设置开机启动。
在这里插入图片描述
在防火墙中加入http
在这里插入图片描述
安装apache的手册
在这里插入图片描述
重启服务
在firefox中输入:http://172.25.254.115/manual
在这里插入图片描述

rpm -qc httpd 查看主配置文件

在这里插入图片描述

 在apache的默认发布目录下创建一个index.html,并编辑

在这里插入图片描述

在浏览器中输入http://172.25.254.115/index.html

在这里插入图片描述

1.修改httpd的服务端口

vim /etc/httpd/conf/httpd.conf 编辑httpd的主配置文件
搜Listen 将端口80改为8080,默认使用端口8080
重启服务

在这里插入图片描述

netstat -antlupe | grep httpd 查看httpd的端口

在这里插入图片描述
在firefox中输入,http://172.25.254.115:80,此时显示不能连接
在这里插入图片描述
而输入http://172.25.254.115:8080,发现也不能进入
给防火墙加入8080端口,即可进入
在这里插入图片描述
在这里插入图片描述
2.修改默认发布文件

恢复80端口
重启服务
cd /var/www/html/
ls 查看默认发布文件index.html
vim westos.html 再编写一个文件
<h1>westos page</h1>

在这里插入图片描述
在这里插入图片描述
直接在浏览器中输入172.25.254.115默认访问的是index.html,只有输入172.25.254.115/westos.html才可以访问westos.html
在这里插入图片描述
在配置文件中,将默认发布文件index.html改为westos.html

vim /etc/httpd/conf/httpd.conf

在这里插入图片描述
在164行,将westos.html写在index.html之前,系统会默认按照顺序来确定默认发布文件,所以当westos.html存在时,默认的发布文件是它,如果当它不存在时候,那就是index.html
重启服务 验证结果

浏览器中输入172.25.254.115

在这里插入图片描述
默认发布文件确实已经更改成为了westos.html

3.修改默认发布目录

mkdir -p /westos/html 新建一个目录,让它当作新的默认发布目录
vim /westos/html/index.html 编写发布目录下的发布文件

在这里插入图片描述

<h1>westos html change</h1>

在这里插入图片描述

vim /etc/httpd/conf/httpd.conf中119行,复制一行,注释掉原来的
将默认发布目录由/var/www/html改成/westos/html

在这里插入图片描述

重启服务

在浏览器中输入172.25.254.115发现并不能找到,是因为新建的默认发布目录没有授权。
在这里插入图片描述
Require all granted 允许共享该目录下的文件
重启服务
在浏览器中输入172.25.254.115,即可找到
在这里插入图片描述
7.apache访问控制
先将所有配置恢复至初始。
然后配置
在这里插入图片描述
Order表示先后顺序,先Allow 后 Deny,这个意思就是先允许所有人访问,然后再拒绝172.25.254.115访问,如果将Deny在前而Allow在后,就为先拒绝172.25.254.115,再允许所有人,允许覆盖了拒绝,所以等于没有设置。
此时用172.25.254.115登陆,http://172.25.254.115发现并不能载入
而用真机,172.25.25.60登陆,就可以载入
在这里插入图片描述
8.指定用户访问

 先建立用户认证文件
 cd /etc/httpd/conf/

在这里插入图片描述

 htpasswd -cm westosuser admin建立admin用户,并输入密码

在这里插入图片描述

 htpasswd -m westosuser admin1 建立admin1用户,并输入密码,如果再次-cm的话,会将之前的创建的admin用户覆盖,用-m就不会覆盖。

在这里插入图片描述

 cat westosuser

在这里插入图片描述

vim /etc/httpd/conf/httpd.conf

在/var/www/html/下建立一个westos目录

 mkdir -p /var/www/html/westos
 vim /var/www/html/westos/test

在这里插入图片描述
在这里插入图片描述
进入浏览器 Ctrl+Shift+Delete清除缓存,输入http://172.25.254.115/westos
在这里插入图片描述
输入admin 密码123
在这里插入图片描述
在这里插入图片描述
如果使用admin1登陆的话,就会发现不能登陆
在这里插入图片描述
这时候把用户认证去掉,打开允许所有用户访问
在这里插入图片描述
重启服务
发现此时admin1也可以登陆
在这里插入图片描述
在这里插入图片描述
也可以登陆 test.html
在这里插入图片描述
9.让一台apache主机有多个站点

 目的:让apache服务器上news/music都有自己的默认发布目录和默认发布文件
 cd /etc/httpd/conf.d/ 默认发布目录
 vim defaults.conf 编辑虚拟主机的配置文件,必须以.conf结尾

在这里插入图片描述
在这里插入图片描述
创建news.conf和music.conf编辑配置文件
在这里插入图片描述
在这里插入图片描述

打开真机,在本地解析文件中输入172.25.254.115 www.westos.com news.westos.com music.westos.com

在这里插入图片描述
在这里插入图片描述

给music和news创建默认发布目录

在这里插入图片描述

创建默认发布文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述重启服务

在真机firefox浏览器,输入news.westos.com
在这里插入图片描述输入music.westos.com
在这里插入图片描述
10.apache支持的语言(html php cgi)
pjp

在/var/www/html下编写一个php语言默认发布文件
vim index.php
<?php
	phpinfo();
?>

在这里插入图片描述
重启服务
在浏览器中输入172.25.254.115/index.php发现什么也没有
在这里插入图片描述
安装php
在这里插入图片描述
重启httpd服务
在浏览器中输入 172.25.254.115/index.php即可看到php的表格
在这里插入图片描述

cgi语言

浏览器中输入172.25.254.115/manual查看手册,看设置cgi语言需在配置文件写什么内容
选CGI查看然后粘贴

在这里插入图片描述
在这里插入图片描述

cd /var/www/html 进入默认发布目录
mkdir cgi在默认发布目录下建立cgi目录
cd cgi
vim index.cgi 写cgi的默认发布文件

在这里插入图片描述
在这里插入图片描述

chmod +x index.cgi  既然是脚本所以要给它一个可执行的权限
./index.cgi可以看到时间调用脚本,看能否看到时间

在这里插入图片描述
此时用浏览器输入172.25.254.115/cgi/index.cgi看到的是源码
在这里插入图片描述

cd /etc/httpd/conf.d
vim default.conf 编辑配置文件
加入

在这里插入图片描述

cgi必须要在配置文件中加入这个字段才会生效          
==重启服务==

再次在浏览器输入172.25.254.115/cgi/index.cgi发现显示的不再是源码
在这里插入图片描述
wsgi语言

在/var/www下建立wsgi目录,
从172.25.254.250下载python脚本,将此脚本文件放入/var/www/wsgi下
用python调用此脚本发现不能调用,所以下载wsgi插件,yum install mod_wsgi

在这里插入图片描述

cd /etc/httpd/conf.d
ls---->vim default.conf

在这里插入图片描述
重启服务
切换到真机172.25.254.60 做本地解析
在这里插入图片描述
打开浏览器输入wsgi.westos.com
在这里插入图片描述

11.https加密访问

HTTPS:Secure Hypertext Transfer Protocol(安全超文本传输协议),是在http协议基础上增加了使用SSL加密传送信息的协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
特点:https是经过加密的传输加密方式是通过用安全套接字层(SSL)
HTTPS和HTTP的区别主要为以下四点:
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
安装apache服务加密插件mod_ssl      

在这里插入图片描述

cd /etc/httpd/conf.d 下有ssl.conf文件
添加https到防火墙中

在这里插入图片描述
重启服务,查看https的端口是否开启
在这里插入图片描述
此时在浏览器中输入 https://172.25.254.115会发现:授权部门没有授权,认为不安全,所以警告。
==解决方法:==Advice(高级选项)->Get Certificate(获得证书)。Confirm确定就可以看到信息。
在这里插入图片描述
以上生成的证书无签名无密钥,还没有自己的证书和密钥,所以需要自己制作证书和密钥。

自签名证书
yum install crypto-utils -y 安装相应的工具
在这里插入图片描述
genkey www.westos.com 对该域主机生成证书和钥匙
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里要选择No 否则会向CA申请
在这里插入图片描述
填完信息就会生成钥匙和密码,随机敲击键盘使得加密字符足够。

生成加密的密钥和证书,apache必须要知道,所以在配置文件中写入

vim /etc/httpd/conf.d/ssl.conf 

在这里插入图片描述
然后重启服务 在浏览器中输入https://172.25.254.115
在这里插入图片描述
在这里插入图片描述此时就可以使用https加密服务了

在这里插入图片描述

网页重定向

会发现如果在浏览器中输入http://172.25.254.115时候,不会自动跳到https://172.25.254.115下。
那如何配置才能让172.25.254.115:80 自动跳转至172.25.254.115:443呢?

在子配置目录下内配置login.conf文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
创建发布目录和文件
在这里插入图片描述
重启服务
在真机的本地解析中加入login.westos.com
然后输入https://login.westos.com 可以看到
在这里插入图片描述
但输入http://login.westos.com不会自动跳转到https://login.westos.com
输入172.25.254.115/manual 选URL,查看网页重定向的写法
在这里插入图片描述

^(/.*)$客户在浏览器地址栏中输入所有的字符
https://强制客户加密访问
%{HTTP_HOST}客户请求主机
$11表示(/.*)的值
[redirect=301]永久重定向,302是临时

重启服务
在真机中输入http://login.westos.com就可以自动跳入到https://login.westos.com了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值