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服务,开启,并且设置开机启动。
apache 从http到https_第1张图片
在防火墙中加入http
apache 从http到https_第2张图片
安装apache的手册
apache 从http到https_第3张图片
重启服务
在firefox中输入:http://172.25.254.115/manual
apache 从http到https_第4张图片

rpm -qc httpd 查看主配置文件

apache 从http到https_第5张图片

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

apache 从http到https_第6张图片

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

apache 从http到https_第7张图片

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,此时显示不能连接
apache 从http到https_第8张图片
而输入http://172.25.254.115:8080,发现也不能进入
给防火墙加入8080端口,即可进入
apache 从http到https_第9张图片
apache 从http到https_第10张图片
2.修改默认发布文件

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

westos page

apache 从http到https_第11张图片
apache 从http到https_第12张图片
直接在浏览器中输入172.25.254.115默认访问的是index.html,只有输入172.25.254.115/westos.html才可以访问westos.html
apache 从http到https_第13张图片
在配置文件中,将默认发布文件index.html改为westos.html

vim /etc/httpd/conf/httpd.conf

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

浏览器中输入172.25.254.115

apache 从http到https_第14张图片
默认发布文件确实已经更改成为了westos.html

3.修改默认发布目录

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

在这里插入图片描述

westos html change

apache 从http到https_第15张图片

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

在这里插入图片描述

重启服务

在浏览器中输入172.25.254.115发现并不能找到,是因为新建的默认发布目录没有授权。
在这里插入图片描述
Require all granted 允许共享该目录下的文件
重启服务
在浏览器中输入172.25.254.115,即可找到
apache 从http到https_第16张图片
7.apache访问控制
先将所有配置恢复至初始。
然后配置
apache 从http到https_第17张图片
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登陆,就可以载入
apache 从http到https_第18张图片
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

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

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

在这里插入图片描述
apache 从http到https_第29张图片
创建news.conf和music.conf编辑配置文件
apache 从http到https_第30张图片
apache 从http到https_第31张图片

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

在这里插入图片描述
apache 从http到https_第32张图片

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

在这里插入图片描述

创建默认发布文件

在这里插入图片描述
apache 从http到https_第33张图片
apache 从http到https_第34张图片重启服务

在真机firefox浏览器,输入news.westos.com
apache 从http到https_第35张图片输入music.westos.com
apache 从http到https_第36张图片
10.apache支持的语言(html php cgi)
pjp

在/var/www/html下编写一个php语言默认发布文件
vim index.php

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

cgi语言

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

apache 从http到https_第40张图片
apache 从http到https_第41张图片

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

apache 从http到https_第42张图片
apache 从http到https_第43张图片

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

apache 从http到https_第44张图片
此时用浏览器输入172.25.254.115/cgi/index.cgi看到的是源码
apache 从http到https_第45张图片

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

apache 从http到https_第46张图片

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

再次在浏览器输入172.25.254.115/cgi/index.cgi发现显示的不再是源码
apache 从http到https_第47张图片
wsgi语言

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

apache 从http到https_第48张图片

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

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

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      

apache 从http到https_第51张图片

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

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

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

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

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

apache 从http到https_第60张图片
然后重启服务 在浏览器中输入https://172.25.254.115
apache 从http到https_第61张图片
apache 从http到https_第62张图片此时就可以使用https加密服务了

apache 从http到https_第63张图片

网页重定向

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

在子配置目录下内配置login.conf文件
在这里插入图片描述
apache 从http到https_第64张图片

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

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

重启服务
在真机中输入http://login.westos.com就可以自动跳入到https://login.westos.com了。
apache 从http到https_第69张图片

你可能感兴趣的:(apache 从http到https)