Apache服务的管理

DNS TCP 53端口用于区域传送
DNS UDP 53解析使用的
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
MIME可以将非文本信息编码为文本格式的数据--基于文本协议--发送导对方--还可以还原
基于文本方式传输

动态资源:不是文本内容而是程序文件
需要服务器运行一下生成的结果数据流发给客户端

在这里插入图片描述
Ngin就是复用的多进程IO结构 事件驱动 worker

在这里插入图片描述
在这里插入图片描述
工作模型: prefork,worrker

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

学习目标:
Apache基本配置
虚拟主机配置
HTTPS配置
集成动态内容

apache(web服务器)
apache是世界使用排名第一的Web服务器软件。他可以运行在几乎所有广泛使用的计算机平台,由于其跨平台和安全性被广泛使用,是最流行的web服务器端软件之一。它速,可靠并且可通过简单的API扩充,将Perl和Python等解释器编译到服务器中。

nginx 比阿帕奇好很多
prefork: 欲派生
apache:稳定,处理动态页面,同步阻塞,在客户端释放前不会释放内存。动态资源。
nginx: fork用户请求来直接处理,只能处理静态页面 ,异步非阻塞,交叉使用内存,擅长用于反向代理。

QQ 用的nginx <–curl -I www.qq.com
阿里的访问代理 Tengine
在这里插入图片描述
10086类似于反向代理 请求转接
翻墙 VPN 正向代理

lamp lnmp = linux apache(nginx) mysql php
apache 提供http/https协议访问

Ss 顶级进程 root 监控

ab 压力测试 适用apache 和nginx去对比速度

##安装apache############
实验环境:重置desktop
配置IP 重命名

##关闭selinux

#1.apache
#企业中常用的web服务,用来提供http:// (超文本传输协议)
2.Apache的安装部署

安装apache软件包
yum install -y httpd   ##Apache软件
yum install -y httpd-manual     ##apache手册
启动Apache服务:
systemctl start httpd
systemctl enable httpd
设置防火墙允许
firewall-cmd --permanent --add-service=http  ##火墙允许http
firewall-cmd --reload  ##在不改变状态的情况下重新加载
firewall-cmd --list-all


 /var/www/html    ##apache的根目录,默认发布目录 
 /var/www/html/index.html   ##apache的默认发布文件
 vim  /var/www/html/index.html
 <h1>hello westos</h1>
不需要重启,直接在网页刷新

##测试:
http://172.25.254.100
http://172.25.254.100/manual

实验环境:重置desktop
配置IP 重命名

在这里插入图片描述
在这里插入图片描述
安装apache软件包
yum install -y httpd ##Apache软件
在这里插入图片描述
配置文件路径
在这里插入图片描述
在这里插入图片描述

yum install -y httpd-manual     ##apache手册

在这里插入图片描述
启动Apache服务:
systemctl start httpd
systemctl enable httpd
在这里插入图片描述
设置防火墙允许

firewall-cmd --permanent --add-service=http  ##火墙允许http
firewall-cmd --reload  ##在不改变状态的情况下重新加载
firewall-cmd --list-all

在这里插入图片描述

 /var/www/html/index.html   ##apache的默认发布文件
 vim  /var/www/html/index.html
 <h1>hello westos</h1>
不需要重启,直接在网页刷新

在这里插入图片描述
在这里插入图片描述
##测试:
http://172.25.254.100 网页访问,可以访问到默认发布录的内容
UNABLE TO CONNECT 两种可能:防火墙,服务没开
在这里插入图片描述
如果访问其他文件,需要再ip之后添加文件名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果不更改的话 默认的测试页面内容在
在这里插入图片描述重启服务就会发现没有页面

http://172.25.254.100/manual

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

页面下就有这个文件
在/etc/httpd/conf/httpd.conf都可以更改该文件
在这里插入图片描述
高度模块化的

在这里插入图片描述
在这里插入图片描述
表示15秒 或者是100个请求就会断开
在这里插入图片描述

这里是课的
在这里插入图片描述
默认开启的,关闭
在这里插入图片描述

检测语法错误
在这里插入图片描述
在这里插入图片描述

telnet自己给自己发报文 发现报完了直接关闭了
在这里插入图片描述
在这里插入图片描述
一个是30秒 一个是100个资源 哪个先到达就断开了

在这里插入图片描述

test index

测试

在这里插入图片描述响应完成并没有断开连接

在这里插入图片描述

httpd -M查看模块
只要是shareed就可以load module装载
在这里插入图片描述
在这里插入图片描述
配置mpm是如何工作的
在这里插入图片描述这种模式两级 父进程生成子进程 一个子进程处理一个请求

进程启动创建多少个子进程
最少空闲进程数 ##一直有空闲的 这才是prefork的意义
最多空闲进程数
为生命周期内最多允许创建的子进程活跃状态的进程存在
最多允许创建的子进程数量
每个子进程最多允许创建多少个请求就必须强制退出

进程上下文切换也需要消耗 所以nginx不需要一直上下文切换进程 因此nginx受欢迎

在这里插入图片描述三级: 父进程创建子进程–>子进程创建线程—>每个线程处理一个请求

启动的进程
最多允许的在线的线程数量
最少空闲线程数
最多空闲线程数
每个子进程生成多少个线程
多个线程无限制处理多少个请求

所以很尴尬了。刚开始启动四个进程,产生100个线程,但是最大空闲进程75个 所以干掉一个进程 变成三个
配置很迷惑

vim 在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

刚开始就被杀掉了一个进程
在这里插入图片描述

使用httpd都是Prefork 所以没人管

centos7
2.4版本更换mpm

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

注释prefork 开启event

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

在这里插入图片描述

在这里插入图片描述

改回去

http一般只是用prefork

在这里插入图片描述

在这里插入图片描述
http -M 只要是类型为shared的都是i可以使用load_module来装载的

如果不想要了 编辑对应模块的配置文件 即可

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

刚才的哪个scgi模块就没有了

即动态可装载模块

在这里插入图片描述

注释掉 重启服务 添加回模块

相对路径的http的根
在这里插入图片描述
在这里插入图片描述

所有的模块
在这里插入图片描述
需要的直接loadmodule即可

第三方模块 额外编译 自己编译进这个目录
后续需要http的模块也编辑进这个目录即可

在这里插入图片描述

##3:apache的基础信息

  apache                       ##程序开启默认用户, 处理用户请求的进程
  /etc/httpd/logs/*            ##apache日志
  /etc/httpd/conf              ##主配置文件
  /etc/httpd/conf/httpd.conf   ##主配置文件
  /etc/httpd/conf.d/           ##子配置目录
  /etc/httpd/conf.d/*.conf     ##子配置文件
 /var/www/html                 ##apache的根目录,默认发布目录
  /var/www/html/index.html      ##apache的根目录,默认发布文件
   默认端口:80 
  http_sys_content_t            ##默认安全上下文
  ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190812224352121.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzdWZlaXlh,size_16,color_FFFFFF,t_70)

修改默认端口:
 vim /etc/httpd/conf/httpd.conf
43行   Linsten  8080          ##修改默认端口为8080    
firewall-cmd --premanent --add-port=8080/tcp  ##修改后火墙修改接口配置
firewall-cmd --reload

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
访问http需要加8080
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改默认发布文件:
默认发布文件就是访问apache时没有指定文件名时默认访问的文件
这个文件可以指定多个,有访问顺序

  vim /etc/httpd/conf/httpd.conf
 164  DirectoryIndex westos  index.html  ##当westos存在时先访问westos,不存在时	直接访问index.html

在这里插入图片描述判断如果这个模块存在 那么就执行这里面的指令

在这里插入图片描述
在这里插入图片描述
修改默认发布目录:

  vim /etc/httpd/conf/httpd.conf
       120 DocumentRoot "/westos/html" 
       121 <Directory "/westos">                  
       122       Require all granted
       123</Directory>   

vim /etc/httpd/conf/httpd.conf
120 DocumentRoot “/westos/html”
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
121 <Directory “/westos”>
122 Require all granted
123
在这里插入图片描述
在这里插入图片描述
注意:

当selinux=disabled,重启httpd服务之后可以看到默认发布文件‘
当selinux=enforcing,可以修改安全上下文看默认发布文件
semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
restorecon -RvvF /westos/

访问日志acces log
错误日志error log
在这里插入图片描述
日志截断 日志压缩
QQ聊天记录会在腾讯存储很长时间

###访问控制#####

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试是否还原成功
在这里插入图片描述

vim /var/www/html/index.html
<h1>172.25.254.111</h1>


mkdir /var/www/html/westos  -p
vim /var/www/html/westos/index.html
<h1>test page</h1>


vim /etc/httpd/conf/httpd.conf
120 <Directory "/var/www/html/westos">
121         Order Allow,Deny            ###顺序,先读allow,再deny
122         Allow from All
123         Deny from 172.25.254.11    ##读到deny会覆盖allow
124 </Directory>

systemctl restart httpd

  测试:在172.25.254.11主机访问
     http://172.25.254.111/westos访问失败
   在其他主机可以访问

vim /var/www/html/index.html

172.25.254.111

mkdir /var/www/html/westos -p
vim /var/www/html/westos/index.html

test page


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

在这里插入图片描述

vim /etc/httpd/conf/httpd.conf
120 <Directory "/var/www/html/westos">
121         Order Allow,Deny            ###顺序,先读allow,再deny
122         Allow from All
123         Deny from 172.25.254.11    ##读到deny会覆盖allow
124 </Directory>     ##只禁止11主机

systemctl restart httpd

在这里插入图片描述
把范围小的写前面

在这里插入图片描述

也可以这种方式写
在这里插入图片描述

  测试:在172.25.254.11主机访问
     http://172.25.254.111/westos访问失败
   在其他主机可以访问

在这里插入图片描述
在这里插入图片描述只允许11主机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

option访问主站 默认会列出所有主页
indexes 一旦存在主页 别人就可以看到所有的文件
可定义改目录下的文件以哪些选项展示
在这里插入图片描述
在这里插入图片描述

ALL 启动所有选项
indexec 允许索引

新建立文件 放多个文件
在这里插入图片描述
在这里插入图片描述
没有主页 显示所有的!!很危险
在这里插入图片描述

在这里插入图片描述

不稳妥 如果上级目录 允许了还是可以

在这里插入图片描述
访问就没权限了

在这里插入图片描述
所以一般可以加载一个默认资源 就是index.html

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

只有给出全部类路径才可以

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

源文件不再网页范围呢

是否允许客户端访问

默认是允许的

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

别名路径

现在希望访问/image下目录都访问的是别的路径

在这里插入图片描述
访问images就自动访问这个新路径 不去刚才哪个路径下了

在这里插入图片描述

在这里插入图片描述
注释刚才哪个alias恢复

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

指定用户访问,且需要认证

在这里插入图片描述
自动提供了认证的文件

#生成认证文件
htpasswd -cm westosuser admin ##第一次生成文件是加-c参数
cat westosuser
htpasswd -m westosuser admin1
##修改默认访问文件
vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/westos">
AuthUserFile  /etc/httpd/conf/westosuser  ##读取认证文件
AuthType      basic     ##基本的认证方式
AuthName	 "Please input your name and password"  ##访问页面
Require user  admin         只允许admin用户访问,

#Require		valid-user    ##不加用户名,表示认证文件里的所有用户都可以访问
</Directory>


systemctl restart httpd

 测试:172.25.254.111/westos
   显示出输入用户和密码

#生成认证文件
htpasswd -cm westosuser admin ##第一次生成文件是加-c参数
cat westosuser

-m也可以指定别的目录下的文件

在这里插入图片描述
htpasswd -m westosuser admin1
在这里插入图片描述
##修改默认访问文件

vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/westos">
AuthUserFile  /etc/httpd/conf/westosuser  ##读取认证文件
AuthType      basic     ##基本的认证方式
AuthName	 "Please input your name and password"  ##访问页面
Require user  admin         只允许admin用户访问,

在这里插入图片描述
在这里插入图片描述
systemctl restart httpd

 测试:172.25.254.111/westos
   显示出输入用户和密码

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

认证成功之后有钥匙图标

#Require		valid-user    ##不加用户名,表示认证文件里的所有用户都可以访问
</Directory>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以查看 后续自动保存了 就不需要每次都输入密码了

在这里插入图片描述
归类一个组就可以了

在这里插入图片描述

在这里插入图片描述
定义一个组 组名字为tom 包括两个用户
animales: admin admin1

在这里插入图片描述

继续添加组文件 和组的名字即可

在这里插入图片描述

测试成功

虚拟主机

在这里插入图片描述

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

在这里插入图片描述

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

另外一个
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

也可以基于端口

地址一样 端口不一样
在这里插入图片描述
另外一个
在这里插入图片描述
删除地址
在这里插入图片描述
重启服务

在这里插入图片描述

基于主机名

在这里插入图片描述
在这里插入图片描述
重新启动
根据ip默认是第一个被加载的文件

添加域名 /etc/hosts
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

下面这个是我自己做的:

虚拟主机允许您从一个httpd服务器同时为多个网站提供服务。在本节中,我们将了解基于名称的虚拟主机,其中多个主机名都指向同一个IP地址,但是Web服务器提供用于到达站点的主机名提供具有不同内容的不同网站。

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

需要实现的就是使用不同的域名去访问的时候,到达站点的主机名提供具有不同内容的不同网站。(可以让一台Apache服务器在访问不同域名时候显示不同的主页)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置默认,music和news的文件
在这里插入图片描述
在这里插入图片描述

一个定义格式 命名combined格式 后续的引用既可以在这里插入图片描述

在这里插入图片描述
vim /etc/httpd/conf.d/news.conf ##指定域名news.westos.com访问指定默认目录
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

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

status页面

在这里插入图片描述
在这里插入图片描述
内建的一个代码 可以打开把他激活

加到ilinux访问

在这里插入图片描述

显示已经装载了 如果没有就用上面哪个loadmodule即可

在这里插入图片描述

重启服务

内建的状态页面:
在这里插入图片描述
两个进程 因为是两个浏览器在访问该页面
在这里插入图片描述

可以使用zabbix或者prometheus监控–好看的页面表示

5.4.16-45.el7 更新php
访问动态页面
动态页面需要和数据库交互 例如输入帐号密码
php cgi
FastCGI 更快

Apache的语言支持:

总结

在这里插入图片描述location和directory一个是以目录做限制,一个是url为对象

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
304 浏览器有缓存不知道过期没有 就问下服务器 服务器查询如果过期了就200响应
如果服务器缓存没有发生改变就更新了缓存的时间 返回304 表示服务器缓存未改变

401就是之前验证页面需要输入账号密码

502 表示的是浏览器访问代理 代理不能处理 后端真实的服务器也联系不到 就先回复502 表示稍后再来把

在这里插入图片描述
keep-alive代表长连接

在这里插入图片描述
实体首部 就是body部分多长

在这里插入图片描述

cache再varnish中才使用

via就是经过的代理服务器

在这里插入图片描述告诉服务器自己接受的媒体类型
user-agent客户端浏览器型号

请求响应401就是需要输入账号密码 这里就是填完之后向服务器提交的首部包含authorization

在这里插入图片描述第一次客户访问的时候会给set-cookie
www-authenticate 就是第一次弹出的对话框让输入 弹出的过程首部就有这个 意思就是让输入
authorization 就是填好了提交的时候首部用到的

在这里插入图片描述allow就是options方法
location就是重定向的新地址

curl

在这里插入图片描述
基于前面的虚拟主机继续
在这里插入图片描述
node1 67查询日志
在这里插入图片描述
在这里插入图片描述自己伪装

在这里插入图片描述

在这里插入图片描述

refer就是上级是从哪个连接跳转过来的

可以伪装自己从某个位置跳转过来的

在这里插入图片描述

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

就是向服务器发送head请求方法而不是get
在这里插入图片描述

elinks

在这里插入图片描述

交互式

会把Html转换
在这里插入图片描述

在这里插入图片描述

如果有url还可以点击连接跳转

在这里插入图片描述

不进入交互式

在这里插入图片描述

服务进程用户

在这里插入图片描述

普通用户身份运行进程
被劫持后也只是普通用户

在这里插入图片描述
只有主进程是root 监听80 特权端口 1023以内 仅管理员有权限使用

子进程向用户请求提供服务 这个才可以被访问到、甚至劫持

访问资源的时候需要看该进程用户是否有权限访问

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

属组更改

即可访问

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

和进程权限息息相关的

所以该进程访问该文件 取决于这个进程属主属于拥有什么权限

在这里插入图片描述

之所以是apache用户是因为

在这里插入图片描述

定义进程所属主

如果alias 另外路径下的文件必须用其他的用户才可以运行怎么办
更改进程用户 document主的就不可以了

可以使用SUexec切换用户

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

文本类传输时候压缩后传送 文本类压缩很多带宽
图片本身已经压缩过了

该模块默认启动

在这里插入图片描述

设置过滤器 名字为DEFLATE

对文本类型都保留过滤后压缩

压缩比 不支持9 消耗cpu

对老版本不支持 如果是老浏览器就不压缩

在这里插入图片描述

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

资源太小不会压缩

在这里插入图片描述

在这里插入图片描述

压缩了 gzip
之前是2341 压缩后453

https

在这里插入图片描述httpd

ssl模块被当成了单独的包提供 需要安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
http基于这个模块调用ssl库实现了https

https访问流程:
1.三次握手
2.建立ssl会话

在这里插入图片描述3.ssl会话断开
4.四次挥手

测试自建CA:

68是CA机构
67是服务器
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

为www.ilunx.com主机提供https
加密就是对证书这些内容加密

拷贝给CA 请求签名 等待签名的证书文件  这个应该是证书签署请求csr而不应该是crt
在这里插入图片描述CA机构

签名证书

在这里插入图片描述在这里插入图片描述
服务器更改下名字
在这里插入图片描述

CA把签署好的证书发送过去

在这里插入图片描述

在这里插入图片描述

配置服务器工作为https模式

在这里插入图片描述
虚拟主机 ip级别的 多个虚拟主机就需要多个ip地址

在这里插入图片描述
查询本机虚拟主机

在这里插入图片描述
两类虚拟主机
显示虚拟主机80端口有2个 括号内的是配置文件
默认的是ilinux.io

443虚拟主机是再ssl.conf中配置的

为明文的虚拟主机提供
希望网站可以通过http和https访问
建立了多个明文主机 基于主机名 提供https虚拟主机

两种:
只提供https虚拟主机
为某一个80端口的虚拟主机站点提供https访问

配置
主机名www.ilinux.io 表示为这个域名的虚拟主机提供https访问

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述因为还没有给证书

配置证书保持一致

在这里插入图片描述

在这里插入图片描述
因为浏览器不知道给服务器发证的CA是谁

导入CA证书

设置–>高级设置–>管理证书–>导入CA证书

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这个是因为没有对目录授权 require all granted

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

CA证书校验成功

在这里插入图片描述
输入之后回车两次

在这里插入图片描述

在这里插入图片描述
长连接哦‘

再httpd上配置的不是很多

配置一般都是再nginx配置的

在这里插入图片描述
下篇文章请参考 《lamp配置》 比较新

php + cgi

PHP:超文本预处理文件,动态页面

 在默认发布目录下建立文件
 vim /var/www/html/index.php
<?php
    phpinfo();
?>

安装php插件
yum install -y php

systemctl restart httpd

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

在这里插入图片描述

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

可以看到文件内容
在这里插入图片描述

cgi

CGI:通用网关接口是网站上放置动态内容的最简单的办法
mkdir /var/www/html/cgi

 vim  /var/www/html/cgi/index.cgi
  以下内容可以在172.25.254.111/manual下的CGI:Dynamic Content中找到
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;   注意data上面的符号

chmod 775 index.cgi

vim /etc/h8ttpd/conf.d/default.conf

<VirtualHost _default_:80>
    DocumentRoot    /var/www/html
    CustomLog       logs/default.log combined
</VirtualHost>
<Directory "/var/www/html/cgi">
Options +ExecCGI                    ##动态页面
AddHandler cgi-script .cgi
</Directory>


测试:在浏览器中:172.25.254.111/cgi/index.cgi
   会动态显示时间

vim /var/www/html/cgi/index.cgi
以下内容可以在172.25.254.111/manual下的CGI:Dynamic Content中找到
#!/usr/bin/perl
print “Content-type: text/html\n\n”;
print date; 注意data上面的符号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
chmod 775 index.cgi
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
vim /etc/httpd/conf.d/default.conf

<VirtualHost _default_:80>
    DocumentRoot    /var/www/html
    CustomLog       logs/default.log combined
</VirtualHost>
<Directory "/var/www/html/cgi">
Options +ExecCGI                    ##动态页面
AddHandler cgi-script .cgi
</Directory>

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

测试:在浏览器中:172.25.254.111/cgi/index.cgi
   会动态显示时间

在这里插入图片描述

**HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。

HTTPS:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

http与https的区别是什么?
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS和HTTP的区别主要为以下四点:
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

SSL作用:
1.认证用户和服务器,确保数据发送到正确的客户机和服务器
2.加密数据以防数据中途被窃取
3.维护数据的完整性,确保数据在传输过程中不被改变

##apache的ssl##################
网页重径向
301永久重径向
302临时重径向
200 到头了
(1)HTTPS (2)重径向

(1)HTTPS配置
HTTPS访问时自动对数据加密,为了网络数据传输的安全。
https访问443端口

对HTTPS访问,需要安装mod_ssl
安装ssl相关插件
yum install -y mod_ssl ## ##会自动生成ssl.conf文件,路径在/etc/httpd/conf.d/

systemctl restart httpd

https://172.25.254.100

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

##自签名证书(SSL证书制作)

yum install -y crypto-utils
编辑自己的证书页面
genkey www.westos.com   ##操作完成之后会出现私钥文件

vim /etc/httpd/conf.d/ssl.conf  ##主配置文件中修改
修改证书生成路径

101 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
108 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.ke

systemctl restart httpd
在这里插入图片描述
第一页:NEXT
第二页:生成1024位的加密私钥
第三页:NO 实验环境,这里无需备案
在这里插入图片描述
在这里插入图片描述生成证书签名请求,填写相关信息
在这里插入图片描述
在这里插入图片描述修改配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

打开浏览器,点击小锁,查看证书
测试:浏览器中:https://172.25.254.112
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击小锁
在这里插入图片描述
在这里插入图片描述

##网页重写
输入站点名称之后直接转换为https方式,为了方便实验,新建虚拟主机login
https 443
http 80

cd  /etc/httpd/conf.d/
cp news.conf login.conf

vim login.conf

<VirtualHost *:443>
    ServerName      login.westos.com
    DocumentRoot    /var/www/virtual/login/html
    CustomLog       logs/login.log combined
    SSLEngine on            
    SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
</VirtualHost>
<Directory "/var/www/virtual/login/html">
    Require all granted
</Directory>

在这里插入图片描述
在这里插入图片描述
mkdir -p /var/www/virtual/login/html

vim /var/www/virtual/login/html/index.html

      <h1>login page</h1>

在这里插入图片描述
在这里插入图片描述
systemctl restart httpd
在这里插入图片描述
在这里插入图片描述

vim login.conf  
##强制重径向
 <VirtualHost *:443>
      ServerName      login.westos.com
      DocumentRoot    /var/www/virtual/login/html
      CustomLog       logs/login.log combined
      SSLEngine On       
      SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt      ##证书
      SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key ##钥匙
  </VirtualHost>
  <Directory "/var/www/virtual/login/html">
           Require all granted
  </Directory>
  
<VirtualHost *:80>       把所有访问80端口的都转换成https去访问加密的443端口
    ServerName      login.westos.com
    RewriteEngine   On
    RewriteRule     ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>


#^(/.*)$表示客户再浏览器中输入的所有字符
https://表示强制客户加密访问
#$1表示^(/.*)$的值
#redirect=301 表示转换时永久的
#%{HTTP_HOST}  表示客户请求主机

地址转换:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值