你好,游客 登录 注册 搜索
背景:
阅读新闻

RHCE认证心得笔记-Web

[日期:2017-07-01] 来源:Linux社区  作者:izhouyu [字体: ]

RHCE认证心得笔记-Web,这里只说一些应该注意的点。

第一步要更改配置文件中的ServerName参数,这个是服务器的名称一定要记得更改。如果说让你有让某个域访问,另外一个域不能访问,你就只要让防火墙可以让那个域通过http和https服务就可以啦。

mod_ssl这个软件包是提供安全加密的。当你安装完它之后你就会发现/etc/httpd/conf.d这个文件夹里面多了一个ssl.conf的文件,我们要配置虚拟主机的话要复制一下模板文件,命令如下 

cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/vhosts.conf

通过看配置文件中出现了这个Include conf.modules.d/*.conf 参数,这个是子配置文件,如果子配置文件生效的话,会覆盖主配置文件,所以我们把全部的都做成虚拟主机就可以啦

下面是证书的,证书是由server发放的,我们只要下载下来放在指定的位置就可以啦,这个位置可以在ssl.conf文件中看到,因为这个用到的服务是https,所以防火墙要让它通过https服务,如果要让特定的用户可以修改这个目录的话,可以用setfacl命令去设置

对于要进行访问控制的,可以通过在/etc/httpd/conf/httpd.conf文件中可以看到对应的模板,像下面的这样

<Directory />

    AllowOverride none

    Require all denied

</Directory>

下面是动态网站的配置

首先要按mod_wsgi,这个是提供http动态的模块,如果没有安装会报错的哦。因为wsgi要用的端口是8909,默认情况下selinux是没有给8909贴上http_port_t的标贴的,所以我们要给它贴上标签,还要让防火墙允许它通过,最最最重要的是让http去侦听这个端口。

上面是思路,下面是真正的解题啦

yum install httpd -y

vim /etc/httpd/conf/httpd.conf

ServerName system1.group8.example.com

保存退出后

下载考证提供给你的主页下载的地址http://server.group8.example.com/pub/system1.html ,下载到指定的目录

wget -O /var/www/html/index.html http://server.group8.example.com/pub/system1.html 

设置防火墙允许http服务通过

用firewall-config命令图形化操作

firewall-cmd --reload

systemctl restart httpd

这样就可以访问啦

因为后面是虚拟机主机的配置,我们可以刚刚配置的东西都搬到虚拟主机上,因为这样可以方便,你也可以不用在虚拟主机上做,其它HTTP服务上面可以配置多个虚拟主机,那什么时候要这个虚拟主机什么时候用那个呢,这就关系到虚拟主机的优先级别啦,当某个请求进入时,httpd将首先尝试匹配设置了显式IP地址的虚拟主机,如果这些匹配项失败了,那么就检查具有通配符IP地址的虚拟主机,如果仍没有匹配项,则将使用主服务器配置。综上所述,vhosts.conf配置文件的优先级比httpd.conf文件的要高一些,如果你在<VirtualHost *:80>始终将匹配端口80/tcp上的常规http流量,从而有效禁止主服务器配置用于端口80/tcp的流量

 

下面我是在虚拟主机上做的,看看题目的要求是要我们把刚刚的web服务器再配置成https的,这个是一个安全加密的的http服务

yum install mod_ssl.x86_64

cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/vhosts.conf

编辑/etc/httpd/conf.d/vhosts.conf文件

删除里面的所有东西,增加下面的条目

<VirtualHost *:80>

    DocumentRoot /var/www/html

    ServerName system1.group8.example.com

    ServerAlias www.zhouyu.com(如果你想有多个域名的话可以用这个参数)

    ServerAdmin zhouyu@qq.com(出现错误的时候通知zhouyu@qq.com)

    ErrorLog logs/sitel_error_log(与虚拟主机相关错误消息的位置)

</VirtualHost>

 

<VirtualHost *:443>

        DocumentRoot /var/www/html

        ServerName system1.group8.example.com

        SSLEngine on (开启HLS的指令)

        SSLProtocol all -SSLv2 (指定httpd与客户通信时希望使用的协议的列表)

        SSLCertificateFile /etc/pki/tls/certs/system1.crt

      (此指令向httpd告知虚拟主机证书的位置)

        SSLCertificateKeyFile /etc/pki/tls/private/system1.key

      (此指令告知读取虚拟主机的私钥的位置)

        SSLCertificateChainFile /etc/pki/tls/certs/ssl-ca.crt

      (用来标识ca证书的文件)

</VirtualHost>

保存退出

下面这几个可以参考/etc/httpd/conf.d/ssl.conf文件,可以用命令去除一些注释grep -v "^#" /etc/httpd/conf.d/ssl.conf后就可以很清楚的看到下面的内容,复制过去,修改一些参数就好

SSLProtocol all -SSLv2

SSLCertificateFile /etc/pki/tls/certs/system1.crt

SSLCertificateKeyFile /etc/pki/tls/private/system1.key

SSLCertificateChainFile /etc/pki/tls/certs/ssl-ca.crt

 

在system1上下载server提供的证书,认证密钥,授权信息

wget -O /etc/pki/tls/certs/system1.crt http://server.group8.example.com/pub/tls/certs/system1.crt

wget -O /etc/pki/tls/private/system1.key http://server.group8.example.com/pub/tls/private/system1.key

wget -O /etc/pki/tls/certs/ssl-ca.crt http://server.group8.example.com/pub/tls/certs/ssl-ca.crt

 

然后用firewall-config图形管理让https服务通过

systemctl restart httpd

下面是限制性访问的,编辑/etc/httpd/conf.d/vhosts.conf文件,加入下面的语句

<Directory /var/www/html/private/>

        AllowOverride none

        Require all denied

        Require local

</Directory>

其中下面的语句可以在/etc/httpd/conf/httpd.conf文件中看到

<Directory />

    AllowOverride none

    Require all denied

</Directory>

一定要加入Reuire local,否则其他的主机也可以访问。

下面是动态网站,动态网站需要用到这个软件包mod_wsgi

在/etc/httpd/conf.d/vhosts.conf文件中加入下面语句

<VirtualHost *:8909>

        ServerName wsgi.group8.example.com

        WSGIScriptAlias /       /var/www/html/webinfo.wsgi

</VirtualHost>

Listen 8909

保存退出

WSGIScriptAlias /       /var/www/html/webinfo.wsgi

语句的含义是:

后者是前者的wsgi脚本别名,意味着访问http:// wsgi.group8.example.com:8909/就相当于访问http://wsgi.group8.example.com:8909/var/www/html/webinfo.wsgi 

因为我们添加了8909这个端口,所以要设置防火墙允许通过,可以使用图形化弄

因为selinux默认是不给8909端口http_port_t标签的,所以我们要给它加上这个标签

semanage port -a -t http_port_t -p tcp 8909

下载提供的文件到/var/www/html目录下

wget -O /var/www/html/webinfo.wsgi http://server.group8.example.com/pub/webinfo.wsgi

最后一步,重启服务就好啦

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-07/145349.htm

linux
相关资讯       RHCE认证 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款