Linux搭建httpd服务实例

http端口为80端口 https端口为443端口

常见状态代码、状态描述的说明如下:
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用。
403 Forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
500 Internal Server Error:服务器发生不可预期的错误。
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

MIME类型存在于HTTP响应报文的响应头部信息里,它是一种文本标记,表示一种主要的对象类型和一个特定的子类型。常见的MIME类型
在这里插入图片描述
http协议请求的工作流程:

(1)终端客户在web浏览器地址栏输入访问地址
(2)web浏览器请求DNS服务器把域名 解析成web服务器的IP地址
(3)web浏览器将端口号(默认是80)从访问地址(URL)中解析出来
(4)web浏览器通过解析后的ip地址及端口号与web服务器之间建立一条TCP连接
(5)建立TCP连接后,web浏览器向web服务器发送一条HTTP请求报文
(6)web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。
(7)web服务器关闭HTTP连接,关闭TCP连接,web浏览器显示访问的网站内容到屏幕上。

HTTP报文:http报文中有很多行内容,这些行的字段内容都是由一些ASCII码串组成,但各个字段的长度是不同的。http报文可分为两种,一种是从web客户端发往web服务器的http报文,称为请求报文。另外一种是从web服务器发往web客户端的报文,称为响应报文

http请求报文:http请求报文由请求行请求头部空行请求报文主体几个部分组成
http响应报:文由起始行响应头部空行响应报文主体这几个部分组成

在搭建web服务器前的准备工作:

1.搭建服务 (Linux服务)
2.装包httpd (使用yum安装)
3.停止firewalld (使用systemctl stop firewalld关闭防火墙)
4.停止selinux setenforce 0 (0表示关闭1表示开启)

·httpd主配置文件:/etc/httpd/conf/httpd.conf在这里插入图片描述
主要的参数有:

ServerRoot /etc/httpd   #httpd服务的顶级目录为/etc/httpd
Listen	80		#监听在80端口80为web服务器的默认端口
ServerName	0.0.0.0:80 	#匹配任意IP地址,监听端口在80端口
ServerAdmin root@localhost #一般为你的邮箱,有事的时候给你发邮件
User	apache
Group	apache
DoucumentRoot	/var/www/html 	#网页文件存放的目录
<Directory />
	AllowOverride none 	#目录标记不允许覆盖
	Require	all/ip/host	denied #请求不允许
</Directory>
<Directory /var/wwww/html>
	AllowOverride none 	#目录标记不允许覆盖
	Require	all/ip/host	granted #请求允许
</Directory>
<IfModule dir_module> #加载一个目录模块
	DirectoryIndex index.html
</IfModule>

356行 IncludeOptional conf.d/*.conf 加载所有的自配置文件

/etc/httpd/conf.d/*.conf 额外的参数文件。如果你不想要修改原始配置文件httpd.conf的话,那么你可以将你自己的额外参数文件独立出来,例如你想要有自己的额外设置值,可以将它写入/etc/httpd/conf.d/vhosts.conf(注意,扩展名一定是.conf),而启动Apache时,这个文件就会被读入主要配置文件当中了。
在这里插入图片描述
/var/www/html/这就是默认的首页所在目录,当输入网址时所显示的数据,就是放在这个目录当中的首页文件(默认为index.html)。
在这里插入图片描述
案例一:要求搭建web服务器,能够访问到网页内容为"小胖,你咋这么胖呢!"

分析:进入/var/www/html/下修改index.html文件,内容为"小胖,你咋这么胖呢!",然后在浏览器的地址栏中输入ip地址进行访问。最后重启一下服务systemctl restart httpd
在这里插入图片描述

案例二:要求搭建web服务器,创建基于域名的虚拟主机,能够使用www.xiaopang.com和www.dapang.com各自的网站存放路径分别为/xiaopang和/dapang.内容自定.

分析:进入/etc/httpd/conf.d/创建pang.conf文件,内容如下:

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

分析:创建目录xiaopang和dapang目录并输入各自的内容,重启http服务

在这里插入图片描述

在windows下C:\Windows\System32\drivers\etc修改配置文件hosts增加下面两条语句,最后我们输入域名进行访问

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



案例三:
1.基于域名www.openlab.com可以访问网站内容为welcome to openlab!!!
2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,
基于www.openlab.com/student 网站访问学生信息,
www.openlab.com/data网站访问教学资料
要求:
(1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。
(2)访问缴费网站实现数据加密基于https访问。


https简介

https = http+ssL

SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLS(Transport Layer Security传输层安全协议)。SSL/ TLS
SSL协议分为两层:
SSL记录协议 (SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

客户端浏览器向服务器端发送如下信息:
1、客户端支持的SSL /TLS协议的版本号。
2、Cipher Suite(密钥算法套件)。
3、客户端产生的随机数,稍后用于生成"对话密钥"。
服务器端向客户端发送如下信息
1、确认使用的加密通信协议版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。
2、确认使用的加密方法。
3、服务器证书。

SSL协议提供的服务:
1)认证用户和服务器,确保数据发送到正确的 客户机和服务器
2)加密数据以防止数据中途被窃取
3)维护数据的完整性,确保数据在传输过程中不被改变。
当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信:

认证服务器:浏览器内置一个受信任的CA机构列表,并保存了这些CA机构的证书。第一阶段服务器会提供经CA机构认证颁发的服务器证书,如果认证该服务器证书的CA机构,存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名等)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程。否则,浏览器将提示用户,根据用户的选择,决定是否继续。当然,我们可以管理这个受信任CA机构列表,添加我们想要信任的CA机构,或者移除我们不信任的CA机构。

CA证书
X.509 标准规定数字证书应包含标准化信息。具体地说,X.509 版本 3 证书包含下列字段:
版本号 证书所遵循的 X.509 标准的版本。
序列号 唯一标识证书且由证书颁发机构颁发的编号。
签名算法 CA用于对证书进行数字签名的hash算法。
X.509通用的证书格式包含三个文件:key,csr,crt

key是私钥文件,csr是证书签名请求文件。用于提交给证书颁发机构(CA)对证书签名。crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息。

常见的HASH算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1。

对称密钥加密:加密和解密使用相同密钥。
对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES。

非对称密钥加密:公开密钥加密使用一对非对称的密钥。一把叫做私有密钥一把叫做公开密钥私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。使用此加密方式,发送密文的一方使用公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听盗走。

对称秘钥---- 加密 解密
非对称秘钥-----公钥 (数据加密) 私钥(数据解密)

常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。




访问域名前面已经说过了这里主要讲一下第二题
(1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。

<VirtualHost 192.168.229.133:80>
       DocumentRoot /www/openlab
        alias /student  /student
         #灵活管理资源文件  alias 虚拟目录	真实目录路径  
        alias /data  /data
      ServerName www.openlab.com
</VirtualHost>
<Directory /student>
        AuthType Basic  #基本认证信息
        AuthName "提示信息" #"提示信息"
        AuthUserFile /etc/httpd/users #自定义文件用户信息文件 
        Require user song tian #多个用户用空格隔开
</Directory>
<Directory /data>  #真实目录路径权限
        AllowOverride none
        Require all granted
</Directory>

#创建用户信息
[root@www conf.d]# htpasswd -c /etc/httpd/users song
//-c 创建一个加密文件
会提示你输入密码
[root@www conf.d]# htpasswd /etc/httpd/users tian

在这里插入图片描述
只有song和tian用户可以访问student文件里的东西,其他人不能访问

(2)访问缴费网站实现数据加密基于https访问。

[root@www certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout money.key -x509 -days 365 -out money.crt
这里是证书文件个密钥文件一起创建,创建好了在把对应的文件移到对应的文件夹中就好了
注意这里的是相对路径,创建时最好先进入对应的文件夹中
/etc/pki/tls/certs/money.crt //证书路径
/etc/pki/tls/private/money.key //密钥文件路径
创建证书和密钥文件


<VirtualHost 192.168.229.133:443>
        SSLEngine on  //开启ssL加密验证
        SSLCertificateFile /etc/pki/tls/certs/money.crt //指定证书路径
        SSLCertificateKeyFile /etc/pki/tls/private/money.key //定密钥文件路径
        DocumentRoot /www/openlab
        alias /money /money
        ServerName 192.168.229.133
</VirtualHost>

创建证书时需要输入的基本信息
Country Name (2 letter code) [XX]:86 //国家编号
State or Province Name (full name) []:shanxi //地名
Locality Name (eg, city) [Default City]:xian //城市
Organization Name (eg, company) [Default Company Ltd]:openlab //公司
Organizational Unit Name (eg, section) []:rhce //部门
Common Name (eg, your name or your server’s hostname) []:localhost //主机名
Email Address []:admin@admin.com //邮箱

第二种生成证书的方法(会提示给密钥文件创建一个密码)
在/etc/pki/tls/private/路径下先生成密钥 ,使用下面的命令:
openssl genrsa -aes128 2049 > money.key

在/etc/pki/tls/certs/路径下生成证书文件 ,使用下面命令:
openssl req -utf8 -new -key /etc/pki/tls/private/money.key -x509 -days 365 -out money.crt

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

案例:为该公司不同部门共享相应文档,例如:技术部的成员用户认证只能访问到该部门共享文件

首先创建配置文件,在/etc/httpd/conf.d/目录下自定义一个以.conf结尾的配置文件
在这里插入图片描述
创建对应的资源文件

1.创建目录给目录添加测试文件
mkdir -p /www/{jishubu,anquanbu}

2.创建测试文件
touch /www/anquanbu/{20..30}
touch /www/jishubu/{1..10}

3.创建测试组
groupadd anquan
groupadd jishu

4.创建测试用户
useradd heihei -g jishu
useradd xixi -g jishu
useradd haha1 -g anquan
useradd hehe2 -g anquan

5.创建密码文件/etc/httpd/users
htpasswd -c /etc/httpd/users heihei 输入对应的密码
htpasswd /etc/httpd/users xixi 输入对应的密码
htpasswd /etc/httpd/users haha1输入对应的密码
htpasswd /etc/httpd/users hehe2输入对应的密码

6.创建对应的组文件/etc/httpd/groups,在组里添加下面的内容

在这里插入图片描述
7.重启服务,关闭防火墙和selinux
systemctl restart httpd
systemctl stop firewalld
setenforce 0

8.测试

haha1不是技术部的成员所以登录不进去
在这里插入图片描述
heihei是技术部的成员所以可以访问
在这里插入图片描述
xixi不是安全部的成员所以访问不了
在这里插入图片描述
hehe2是安全部的成员可以正常访问
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值