Web基础之httpd服务搭建(一)

时间:2022-01-10 13:20:43

实验需求

(1)使用httpd-2.2搭建httpd服务;

(2)建立两个基于FQDN的虚拟主机www1,www2;要求有单独的错误日志和访问日志;

(3)通过www1的/server-status提供状态信息,且仅允许用户tom访问;

(4)www2设置禁止192.168.0.0/24网络中任意主机访问;

(5)为www2主机提供https服务;


实验过程

httpd-2.4环境


准备工作:

 1、确保httpd服务已正确安装。

# rpm -qa httpdhttpd-2.2.15-45.el6.centos.x86_64

 2、httpd-2.2的基础配置文件

    /etc/httpd/conf/httpd.conf :主配置文件 

    /etc/httpd/conf.d/*.conf

    logs:日志文件 

    modules:模块文件

 3、CentOS 6.7系统,IP地址为172.16.252.55

 4、准备一台服务器创建私有CA,并为虚拟主机签署CA


实验过程:

 1、创建虚拟主机www1,www2

    首先编辑主配置文件/etc/httpd/conf/httpd.conf,启用NameVirtualHost

   # vim /etc/httpd/conf/httpd.conf          NameVirtualHost 172.16.252.55:80

    在/etc/httpd/conf.d/目录下分别创建www1.conf,www2.conf,并进行编辑

# vim www1.conf<VirtualHost 172.16.252.55:80>                ServerName www1.magedu.com                DocumentRoot /data/vhosts/www1             #指定DocumentRoot                Customlog logs/www1-access_log combined    #访问日志                ErrorLog  logs/www1-error_log              #错误日志</VirtualHost># vim www2.conf<VirtualHost 172.16.252.55:80>                ServerName www2.magedu.com                DocumentRoot /data/vhosts/www2                Customlog logs/www2-access_log combined                ErrorLog  logs/www2-error_log</VirtualHost>


分别为www1,www2 创建DocumentRoot目录,并在目录下创建index.html测试页。

# mkdir -p /data/vhosts/www{1,2}www1]# echo "www1.magedu.com" >> index.htmlwww2]# echo "www2.magedu.com" >> index.html

使用httpd -t命令检查配置文件格式是否正确,然后启动httpd服务

# httpd -tSyntax OK# service httpd start


分别访问www1.magedu.com,www2.magedu.com测试虚拟主机是否成功。

# curl www1.magedu.comwww1.magedu.com# curl www2.magedu.comwww2.magedu.com

2、配置www1的/server-status提供状态信息,且至允许tom访问;

首先检查是否加载了status_module模块

#httpd -M |grep status_module status_module (shared)Syntax OK

备注:LoadModule  status_module  modules/mod_status.so  /etc/httpd/conf/httpd.conf

确认加载了status_module模块后,在www1.conf中添加如下配置:

<VirtualHost 172.16.252.55:80>                ServerName www1.magedu.com                DocumentRoot /data/vhosts/www1                Customlog logs/www1-access_log combined                ErrorLog  logs/www1-error_log        <Location /server-status>                     #server-status状态信息                 SetHandler server-status                Order allow,deny                Allow from 172.16                     #该状态信息只允许172.16网段主机访问        </Location>        <Directory "/data/vhosts/www1">                #用户认证,只允许tom访问                Options None                AllowOverride None                AuthType Basic                         #认证类型                AuthName "Auth for www1"                               AuthUserFile "/data/vhosts/www1/.htpasswd"  #认证文件路径                Require user "tom"                          #指定可访问用户        </Directory>        </VirtualHost>


使用htpasswd生成用户认证文件

# htpasswd -c -m /data/vhosts/www1/.htpasswd tom

使用httpd -t 检查配置文件无误后,重新加载httpd

# service httpd reload

通过浏览器访问www1.magedu.com/server-status 测试状态信息及认证用户是否生效

Web基础之httpd服务搭建(一)

Web基础之httpd服务搭建(一)


3、配置www2虚拟主机配置文件www2.conf,实现禁止192.168.0.0/24网段访问

<VirtualHost 172.16.252.55:80>                ServerName www2.magedu.com                DocumentRoot /data/vhosts/www2                Customlog logs/www2-access_log combined                ErrorLog  logs/www2-error_log        <Directory /data/vhosts/www2>                order deny,allow                        deny from 172.16.251.229        #       allow from all        </Directory>                </VirtualHost>

编辑完成后使用httpd -t检查无误重新加载httpd服务


4、为www2提供https服务

 首先创建一个私有CA并通过私有CA为服务器颁发证书,过程如下:

# cd /etc/pki/CA/# touch index.txt# echo "01" > serial # (umask 066;openssl genrsa -out private/cakey.pem)Generating RSA private key, 1024 bit long modulus............++++++............................................................++++++e is 65537 (0x10001)# openssl req -new -x509 -key private/cakey.pem -out cacert.pem #自签

私有CA创建完成,在www2所在服务器创建证书签署请求,并通过以上CA服务器签证

# mkdir /etc/httpd/ssl# (umask 066;openssl genrsa -out /etc/httpd/ssl/httpd.key)Generating RSA private key, 1024 bit long modulus................++++++.++++++e is 65537 (0x10001)# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr #创建证书签署请求# scp /etc/httpd/ssl/httpd.csr 172.16.251.229:/tmp/  #将请求发往CA认证服务器进行签证

CA服务器对以上请求进行CA签证

# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt# scp /etc/pki/CA/certs/httpd.crt 172.16.252.55:/etc/httpd/ssl/


CA签证成功后,配置httpd支持使用ssl,及使用的证书

安装mod_ssl模块

# yum -y install mod_ssl

编辑配置文件/etc/httpd/conf.d/ssl.conf

  

   

  #DocumentRoot "/datdata/vhosts/www2"   //指定www2虚拟主机的DocumentRoot      #ServerName www2.magedu.com:443      #SSLCertificateFile /etc/httpd/ssl/httpd.crt   //CA证书url      #SSLCertificateKeyFile /etc/httpd/ssl/httpd.key    //私钥文件路径

重启httpd服务


5、测试基于https访问主机,返回OK即成功

# openssl s_client -connect 172.16.252.54:443 -CAfile /etc/pki/CA/cacert.pem       Start Time: 1468637497    Timeout   : 300 (sec)    Verify return code: 0 (ok)---