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只管有没有执行的权限(就是能不能进入目录的权限),不管有没有读写的权限
就是都可以自定义网页内容文件,需要很多的参数(熟悉)
高级的操作:允许哪些网段来访问,不能访问
还需要去搜一下(高级的操作)