天天看點

Web基礎之httpd服務搭建(一)

實驗需求

(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 httpd
httpd-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.html
www2]# echo "www2.magedu.com" >> index.html      

使用httpd -t指令檢查配置檔案格式是否正确,然後啟動httpd服務

# httpd -t
Syntax OK
# service httpd start      

分别通路www1.magedu.com,www2.magedu.com測試虛拟主機是否成功。

# curl www1.magedu.com
www1.magedu.com
# curl www2.magedu.com
www2.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服務

# 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)
---