httpd服务

1:搭建个人网站

步骤:

1)修改个人网站的配置文件userdir.conf这个文件

2)创建个人网页文件

3)防火墙和selinux的放行

4)访问

操作:

1)修改个人网站的配置文件userdir.conf这个文件 

UserDir enabled  开启个人网页访问
UserDir public_html 个人网页存放文件

 

2)创建个人网页文件

#权限要放开,允许其他用户访问
[root@controller q7]# ll -R
.:
total 0
drwx---r-x. 2 root root 24 Dec 23 21:24 public_html

./public_html:
total 4
-rwx---r-x. 1 root root 11 Dec 23 21:24 index.html
[root@controller q7]# 

 

3)防火墙和selinux的放行

[root@controller q7]# firewall-cmd --permanent --add-service=http
[root@controller q7]# firewall-cmd --reload 


#selinux
[root@controller q7]# semanage boolean -l |grep home
[root@controller q7]# setsebool -P httpd_enable_homedirs on

还有个人网页文件的selinux上下文类型,在创建时,就自动替换成那个httpd类型
[root@controller public_html]# ll -dZ
drwx---r-x. 2 root root unconfined_u:object_r:httpd_user_content_t:s0 24 Dec 23 21:24 .

 

4)访问  

在浏览器中输入http://192.168.10.110/~q7就能显示网页内容

 

2:基于域名访问的虚拟主机

虚拟主机是一个技术,就是一个服务器可以虚拟出多个主机,每个主机有不同的域名

步骤:

1)修改主配置文件

2)域名解析

3)创建网页文件

4)防火墙和selinux的放行

5)访问

 1)修改主配置文件

#www.a.com的配置文件
[root@controller conf.d]# ls
a.conf  autoindex.conf  php.conf  README  userdir.conf  welcome.conf

<virtualhost 192.168.10.110:80>
 documentroot /www/a
 servername www.a.com
</virtualhost>
<directory /www/a>
 require all granted
</directory>

#www.b.com的配置文件
<virtualhost 192.168.10.110:80>
 documentroot /www/b
 servername www.b.com
</virtualhost>
<directory /www/b>
 require all granted
</directory>

修改了配置文件,还要重启服务 

2)域名解析 

192.168.10.110 www.a.com
192.168.10.110 www.b.com

 

3)创建网页文件

[root@controller /]# mkdir -p /www/a
[root@controller /]# mkdir -p /www/b
[root@controller /]# echo "welcome www.a.com" >> /www/a/index.html 
[root@controller /]# echo "welcome www.b.com" >> /www/b/index.html 

 

4)防火墙和selinux的放行

#网页文件的上下文类型
[root@controller www]# semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'
[root@controller www]# restorecon -RFv /www/
Relabeled /www from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
Relabeled /www/a from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
Relabeled /www/a/index.html from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
Relabeled /www/b from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
Relabeled /www/b/index.html from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
[root@controller www]# 
#防火墙
[root@controller conf.d]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens192
  sources: 
  services: cockpit dhcpv6-client http samba ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
[root@controller conf.d]# 

 

5)访问  

在客户端上访问的话,要添加域名解析,才行

[root@nodes1 ~]# curl www.a.com
welcome www.a.com
[root@nodes1 ~]# curl www.b.com
welcome www.b.com
[root@nodes1 ~]# 

 

windows中的话,要修改域名解析的配置文件,就可以实现访问    

3:基于端口来访问虚拟主机+域名

就是用访问80,8088,8089端口显示不同的网页(域名也可以)

步骤:

1)修改httpd主配置文件和添加2个端口

2)创建端口访问的配置文件

3)创建网页文件

4)防火墙和selinux的放行

5)访问

 

1)修改httpd主配置文件和添加2个端口

如果不添加端口的话,就会报错

#修改主配置文件
Listen 80
Listen 8088
Listen 8089
#添加端口和类型
[root@controller conf]# semanage port -a 8088 -t http_port_t -p tcp
[root@controller conf]# semanage port -a 8089 -t http_port_t -p tcp
[root@controller conf]# semanage port -l|grep 8088
http_port_t                    tcp      8089, 8088, 80, 81, 443, 488, 8008, 8009, 8443, 9000
[root@controller conf]# 

 

2)创建端口的配置文件

<virtualhost 192.168.10.110:8088>
 documentroot /www/8088
</virtualhost>
<directory /www/8088>
 require all granted
</directory>

<virtualhost 192.168.10.110:8089>
 documentroot /www/8089
</virtualhost>
<directory /www/8089>
 require all granted
</directory>

 

重启httpd服务  

3)创建网页配置文件

[root@controller www]# mkdir 8088
[root@controller www]# mkdir 8089
[root@controller www]# echo "welcome 8088 port " > 8088/index.html
[root@controller www]# echo "welcome 8089 port " > 8089/index.html
[root@controller www]# ll -Z
total 0
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 24 Dec 24 14:35 8088
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 24 Dec 24 14:35 8089
drwxr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0     24 Dec 24 14:15 a
drwxr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0     24 Dec 24 14:10 b
[root@controller www]# 

 

4)防火墙和selinux的放行

之前就已经全部都放行了,就只剩下一个端口没有放行

[root@controller conf.d]# firewall-cmd --permanent --add-port=8088/tcp
success
[root@controller conf.d]# firewall-cmd --permanent --add-port=8089/tcp
success
[root@controller conf.d]# firewall-cmd --reload 
success
[root@controller conf.d]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens192
  sources: 
  services: cockpit dhcpv6-client http samba ssh
  ports: 8088/tcp 8089/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
[root@controller conf.d]# 

  

5)访问

[root@nodes1 ~]# curl www.a.com:80
welcome www.a.com
[root@nodes1 ~]# curl www.a.com:8088
welcome 8088 port 
[root@nodes1 ~]# curl www.a.com:8089
welcome 8089 port 
[root@nodes1 ~]# 

 

ip也行,  

  

  

4:加密访问+显示自定义的网页内容

加密比较的安全(443)

安全性:加密的访问通过SSL/TLS协议对传输的数据进行加密,使得数据在传输过程中无法被非法获取或窃取。而不加密的访问则没有这种保护,数据传输过程中存在被截获的风险。
传输数据:加密的访问在数据传输过程中,数据被加密,以密文的形式进行传输,可以防止数据在传输过程中被窃取或篡改。而不加密的访问则以明文形式传输数据,任何截获数据的人都可以直接读取其内容。
浏览器行为:对于加密的访问,大部分现代浏览器会在地址栏显示一个绿色的锁状图标,表示当前连接是安全的。而不加密的访问则不会显示这种标识,可能会让用户误以为连接不安全。

 

步骤:

1)安装加密的包

2)生成私钥

3)生成证书请求文件

4)生成证书(私钥+证书请求文件)

5)移动到存放私钥和证书文件的路径下和修改加密的文件

6)防护墙和selinux的设置

7)重启服务

 1)安装加密的包

[root@controller conf.d]# yum -y install mod_ssl

2)生成私钥

#genrsa 就是generate产生一个rsa的私钥
[root@controller ~]# openssl genrsa > tlsweb.key

3)生成一个证书请求文件

[root@controller ~]# openssl req -new -key tlsweb.key > tlsweb.csr
req ---就是创建证书和管理证书的子命令

-new --就是创建一个新的csr

-key 就是基于这个密钥来创建一个证书请求文件

4)生成一个证书文件

[root@controller /]# openssl req -x509 -days 365 -in tlsweb.csr -key tlsweb.key > tlsweb.crt

-x509 就是将请求文件转换成一个自签证书文件
-days 证书保存时间
-in 用到的证书请求文件
-key 用到的私钥文件

5)移动到存放私钥和证书的文件的路径和修改加密的文件

[root@controller tls]# cp /root/tlsweb.key ./private/
[root@controller tls]# cp /root/tlsweb.crt certs/ 

修改加密文件

SSLCertificateFile /etc/pki/tls/certs/tlsweb.crt
SSLCertificateKeyFile /etc/pki/tls/private/tlsweb.key

6)防护墙和selinux的放行

[root@controller /]# firewall-cmd --permanent --add-port=443/tcp
[root@controller /]# firewall-cmd --reload 

#证书的selinux类型一致
[root@controller tls]# ll -Z
total 16
lrwxrwxrwx. 1 root root system_u:object_r:cert_t:s0    49 Jun 23  2020 cert.pem -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
drwxr-xr-x. 2 root root system_u:object_r:cert_t:s0    72 Dec 24 15:09 certs
-rw-r--r--. 1 root root system_u:object_r:cert_t:s0   412 Mar 26  2021 ct_log_list.cnf
drwxr-xr-x. 2 root root system_u:object_r:cert_t:s0     6 Mar 26  2021 misc
-rw-r--r--. 1 root root system_u:object_r:cert_t:s0 11225 Mar 26  2021 openssl.cnf
drwxr-xr-x. 2 root root system_u:object_r:cert_t:s0    24 Dec 24 15:09 private
[root@controller tls]# 

 

7)重启httpd服务

8)访问

出现了不能连接的话,就是防护墙的问题

https://192.168.10.110

点击高级选项,接受,显示的就是红帽官网的内容

 

自定义网页内容的文件

1)就是在conf.d这个目录下创建一个文件

<virtualhost 192.168.10.110:443>
 documentroot /www/ssl
 SSLEngine on
 SSLCertificateFile /etc/pki/tls/certs/tlsweb.crt
 SSLCertificateKeyFile /etc/pki/tls/private/tlsweb.key
</virtualhost>
<directory /www/ssl>
 require all granted
</directory>

 

2)创建网页内容的文件

[root@controller www]# mkdir ssl
[root@controller www]# ls
8088  8089  a  b  sss
[root@controller www]# echo "welcome ssl" >> ssl/index.html
[root@controller www]# 

3)访问

就能显示加密后的网页内容了  

  

总结:

httpd只管有没有执行的权限(就是能不能进入目录的权限),不管有没有读写的权限

就是都可以自定义网页内容文件,需要很多的参数(熟悉)  

高级的操作:允许哪些网段来访问,不能访问

还需要去搜一下(高级的操作)  

  

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

  

posted @ 2023-12-22 21:22  q_7  阅读(90)  评论(0编辑  收藏  举报