Apache服务(http)
首先确定自己的ip不会被占用并确保yum源可用。
yum install httpd -y
systemctl start httpd
systemctl enable httpd
firewall-cmd --add -permanent --add-service=http 将http加入火墙服务后重新加载火墙
systemctl reload firewalld
可以看到,httpd已经被我加入到了火墙中,不需要再次添加。
Apache的基础信息
主配置目录:/etc/httpd/conf
主配置文件:/etc/httpd/conf/httpd.conf
子配置目录:/etc/httpd/conf.d
子配置文件:/etc/httpd/conf.d/.conf
默认发布目录:/var/www/html
默认端口:80
默认安全上下文:httpd_sys_content_t
程序开启默认用户:apache
apache日志:/etc/httpd/logs/
默认发布文件:index.html
只有在该文件下存放的文件才可以在网页中查看到(存放你想分享给别人的文件)
在默认发布目录下建立index.html文件,该文件在访问本机ip时不需要针对目录,其中的信息便会展示,需要先建立该文件并编辑其内容,这是我已经编辑好的文件。
本机ip
可以看到在访问本机ip时index.html中的信息便会展示(并没有指定文件)
配置文件的修改
/etc/httpd/
对配置文件修改前,我们先将selinux修改为强制级别
配置文件
修改其级别
可以看到其级别为强制级
端口的修改
使用http时,只能使用httpd_port_t中的端口,其它端口无法使用。
修改配置文件
修改其端口为8008
重启服务
访问80端口
访问8008端口
这是因为selinxu的级别对http的服务产生了影响,关闭selinux服务再次查看8008端口
依旧不能访问,这是因为端口没有加入到防火墙中
再次查看8008端口
若使用的端口不是http中的端口,服务会无法启动(在selinux为强制级别下,在关闭selinxu后,服务是可以重启的)
修改端口为6666(任意一个端口,只要该端口未被使用,并且未在http的服务中)
修改selinxu为强制级别,服务无法启动
将6666端口加入http的服务端口就可以重启服务了
修改默认发布文件
恢复端口为80
修改配置文件的默认发布文件为test.html
编辑修改的默认发布文件
在浏览器访问本机,查看到的是新的访问文件(如果是之前的文件,确认自己的配置没问题,则刷新页面或清除浏览器缓存后重新访问)
修改默认发布目录
注释原本的默认发布目录
修改默认发布目录为/westos/html并给该目录授权
建立/westos/html目录并修改其标签类型与/var/www/html相同并进行同步然后重启apache服务
在网页中访问172.25.254.142看到的为修改后的默认发布目录中的文件
虚拟主机配置
服务机
跳转到/etc/httpd/conf.d,并添加以.conf结尾的任意文件,并对其进行编辑
指定默认的其余访问都去访问80端口的/var/www/html目录中的默认发布文件(不需要对其进行授权,因为在配置文件/etc/httpd/conf/httpd.conf中已经对其进行过授权)
指定所有的解析为news.westos.com都去访问/var/www/cheng/news中的默认发布信息
对/var/www/cheng/news进行授权
创建cheng.conf中相对应的目录并编辑发布文件
创建发布目录
编辑默认发布文件
查看默认发布文件
默认发布文件先访问test.html,所以我给出的是test.html的值,而不是index.html的值
客户机
修改本地域名解析
vim /etc/host
实验效果
访问news.westos.com
访问music.westos.com
访问www.westos.com
Apache基于IP的访问
针对文件/var/www/html先读取Allow,后读取Deny
Allow允许所有人访问该文件,Deny禁止172.25.254.42访问该文件(类似于黑名单)
systemctl restart httpd
Ip地址为172.25.254的主机访问该文件
发现无法读取文件内容
Ip为172.25.254.142的主机读取该文件
可以读取
设置对文件/var/www/html,只允许ip地址为172.25.254.42的主机访问,禁止其余ip访问
在主机ip为172.25.254.42的主机查看该文件
在主机ip为172.25.254.142的主机查看该文件发现无法查看
基于用户的安全认证
创建认证文件
创建认证文件.apache_auth并添加用户admin与cheng(第二次添加用户时不需要加参数’m‘),查看认证文件可以看到对应的用户和加密。
编辑文件cheng.conf
修改认证方式并让其读取认证文件,只允许用户admin访问。
针对文件/www/httpd/conf.d
AUthUserFile 查看/etc/httpd/.appache_auth的认证文件
AuthType 认证类型
AuthName 提示信息
Require user name 允许的用户
Require valid-user 允许所有用户
用户cheng访问时
用户admin访问时则可以访问
如何允许所有用户访问
修改文件cheng.conf
使用用户cheng登陆可以查看(查看时要先清除浏览器的缓存然后再查看,每次登陆时都需要清除缓存)
用户admin登陆时
Apache默认支持的语言
html是apache php cgi wsgi
首先注释掉cheng.conf中的用户验证文件
Php
安装php
编写php代码
在网页中查看结果
cgi
创建目录cgi,并在目录中建立文件index.cgi
执行perl代码查看结果
网页中无法查看信息,只能查看到源代码
添加cheng.conf中配置文件如下所示
并关闭selinux
给脚本添加可执行权限并重启httpd服务
再次查看结果
在selinux开启的情况下在网页中查看脚本结果
开启selinux
修改其标签类型为允许访问的标签
同步到目录
在网页中查看结果
wsgi
在该目录下获取python脚本
在cheng.conf中添加配置文件如下所示
安装wsgi
完成本地解析
在做好本地解析的网页中查看信息
https
https使用443端口
yum install mod_ssl -y
yum install crypto-utils -y
genkey www.westos.com##生成密钥命令
选择1024字长
生成随机数
获取数据加密(需要自己从鍵盤输入数据)
不發送加密(只是進行實驗,不然是會被收取費用的)
不需要輸入密碼,不然每次登陸都需要輸入密碼
不發送加密(只是進行實驗,不然是會被收取費用的)
不需要輸入密碼,不然每次登陸都需要輸入密碼
修改自己的加密信息
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt##新的证书
SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key##新的密钥
vim /etc/httpd/conf.d/ssl.conf
将新生成的证书与钥匙加入配置文件,并注释之前的证书与钥匙
将https服务加入火墙服务后重启火墙与httpd
打开网页加密
https://172.25.254.142
选择Add Exception
选择Get Certificate
选择Confirm Secuirty store this exception
在网页查看我们的加密信息
删除加密
在perfermence中找到advanced的server找到自己的加密然后选择delete删除
重定向
^(/.*)$ 客户在浏览器地址栏中输入的所有字符
https:// 强制客户加密访问
%{HTTP_HOST} 客户请求主机
1
表
示
(
/
.
∗
)
1 表示^(/.*)
1表示(/.∗) 的值
[redirect=301] 永久重写 302临时
编写配置文件cui.conf
创建与cui.conf相同的目录,并在目录下建立文件index.html
添加本地解析
在本地解析的浏览器中查看login.westos.com
得到的结果却是443端口的结果(https,本来应该为80端口的http)
访问443端口查看结果