httpd-2.2和httpd-2.4基於virtualhost構建安全的http服務

目錄:

一、centos6使用httpd-2.2基於域名構建httpd服務

二、centos7使用httpd2.4基於域名構建httpd服務

三、centos6編譯安裝httpd-2.4基於域名構建httpd服務


一、centos6使用httpd-2.2基於域名構建httpd服務:

1、安裝http服務:

yum -y install httpd

2、編輯主配置文件開啓Name VirtualHost

NameVirtualHost 192.168.1.100:80

3、創建DocumentRoot及編輯網頁內容

[root@bogon ~]# mkdir -p /data/vhost/www1
[root@bogon ~]# mkdir -p /data/vhost/www2

[root@bogon www1]# echo "www1" >index.html 
[root@bogon www2]# echo "www2" >index.html

4、建立基於www1域名的虛擬主機

要求:

##定義訪問日誌和錯誤日誌

##定義192.168.1.0網段禁止訪問

##訪問www1.magedu.com/server-status輸出狀態頁面,並且僅root用戶可以訪問

具體配置如下:

[root@bogon ~]# vim /etc/httpd/conf.d/vhost1.conf

<VirtualHost 192.168.1.100:80>
   DocumentRoot /data/vhost/www1
   ServerName www1.magedu.com
   CustomLog /var/log/httpd/www1/aceess_log common  
   ErrorLog /var/log/httpd/www1/err_log##日誌文件路徑需要自己創建即可,否則啓服務失敗
   
    <Directory "/data/vhost/www1">
            options None
            AllowOverride None
            Order allow,deny
            deny from 192.168.1.0 ###現在192.168.1.0網段中的任何主機都不可訪問www1  
    </Directory>       


    <Location /server-status> ###設置訪問www1.magedu.com/server-status的狀態信息
            SetHandler server-status
            Order allow,deny
            Allow from 192.168.1
            
            AuthType Basic
            AuthName "admin"
            AuthUserFile "/etc/httpd/conf/.htpasswd"###用戶認證文件
            Require valid-user
    </Location>

        
</VirtualHost>          

[root@bogon conf]# htpasswd -c -m /etc/httpd/.htpasswd aa ##建立認證用戶
ok重啓或重加載測試


5、建立基於www2域名的虛擬主機

要求:

###定義訪問日誌和錯誤日誌

###訪問此站點爲https安全站點

具體配置如下:

<VirtualHost 192.168.1.100:80>
   DocumentRoot /data/vhost/www2
   ServerName www2.magedu.com
   ErrorLog /var/log/httpd/www2/error_log  ##定義錯誤日誌
   CustomLog /var/log/httpd/www2/access_log common ##定義訪問日誌
</VirtualHost>

將此站點構建成HTTPS安全訪問:

建立CA:

1)生成私鑰文件:

[root@bogon tls]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

2)生成自簽證書

[root@bogon CA]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:magedu.com
Organizational Unit Name (eg, section) []:yunwei
Common Name (eg, your name or your server's hostname) []:bogon         
Email Address []:[email protected]

 3)爲CA提供文件

[root@bogon CA]# touch {serial,index.txt}
[root@bogon CA]# echo 01 > serial


http服務器進行配置如下:

1)生成私鑰

[root@bogon ~]# mkdir /etc/httpd/ssl
[root@bogon ~]# cd /etc/httpd/ssl
[root@bogon ssl]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

2)生成證書請求:

[root@bogon ssl]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:magedu.com
Organizational Unit Name (eg, section) []:yunwei
Common Name (eg, your name or your server's hostname) []:bogon
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:       
An optional company name []:

3)將此請求證書傳給CA簽署

[root@bogon ssl]# scp httpd.csr 192.168.1.100:/tmp

4)CA簽署證書併發給請求者

[root@bogon tmp]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
[root@bogon certs]# scp httpd.crt [email protected]:/etc/httpd/ssl/

5)http要支持ssl就需要安裝mod_ssl模塊

[root@bogon ~]# yum -y install mod_ssl

6)配置/etc/httpd/conf.d/ssl.conf文件

<VirtualHost 192.168.1.100:443>
DocumentRoot "/data/vhost/www2"
ServerName www2.magedu.com

SSLCertificateFile /etc/httpd/ssl/httpd.crt

SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

7)重啓服務測試即可

[root@bogon ~]# httpd -t 
Syntax OK
[root@bogon ~]# service httpd reload 
Reloading httpd:

------------------------------------分隔線---------------------------------------

二、centos7使用httpd2.4基於域名構建httpd服務

centos7上的httpd-2.4基本同centos6上的httpd2.2一樣,所有有的地方就不詳細的說明和操作了。

1、安裝httpd服務

yum  -y install httpd 


2、創建網頁及儲存路徑

mkdir -p /data/vhost/www{1,2}

echo "centos7 www1" > /data/vhost/www1/index.html 

echo "centos7 www2" > /data/vhost/www2/index.html 


3、建立虛擬主機www1並且做相應的限制等

[root@bogon ~]# vim /etc/httpd/conf.d/vhost1.conf

<VirtualHost 192.168.1.104:80>
DocumentRoot /data/vhost/www1
ServerName www1.magedu.com
CustomLog /var/log/httpd/www1/acess_log common
ErrorLog  /var/log/httpd/www1/err_log

   <Directory "/data/vhost/www1">
        Options None
        AllowOverride None

        
 ##定義訪問權限:
          <RequireAll>
                Require all granted
                Require not ip 192.168
          </RequireAll>
  </Directory>

   ####定義狀態頁面並且認證
  <Location "/server-status">
        SetHandler server-status
        Require all granted

        AuthType Basic
        AuthName "admin"
        AuthUserFile "/etc/httpd/.htpasswd"
        Require valid-user
  </Location>

</VirtualHost>

4、建立虛擬主機www2

[root@bogon ~]# vim /etc/httpd/conf.d/vhost2.conf 

<VirtualHost 192.168.1.104:80>
DocumentRoot /data/vhost/www2
ServerName www2.magedu.com
CustomLog /var/log/httpd/www2/acess_log common
ErrorLog  /var/log/httpd/www2/err_log

<Directory "/data/vhost/www2">
        Options None
        AllowOverride None
        Require all granted
</Directory>
</VirtualHost>

----------------------------------分隔線-----------------------------------------

三、centos6編譯安裝httpd-2.4基於域名構建httpd服務

由於httpd-2.4所依賴的apr和apr-until需要1.4版本以上。而centos默認自帶的版本比較低,所以我們在centos6使用httpd-2.4的時候需要我們手動進行編譯安裝纔可以:


準備工具:apr-1.4.6.tar

                apr-util-1.4.1.tar

                httpd-2.4.6.tar


1、安裝開發包組件

[root@bogon ~]# yum -y install prce-devel
[root@bogon ~]# yum groupinstall Development tools  Server Platform Development

2、安裝apr

[root@bogon ~]# tar xf apr-1.4.6.tar.bz2 
[root@bogon ~]# cd apr-1.4.6
[root@bogon apr-1.4.6]# ./configure --prefix=/usr/local/apr
[root@bogon apr-1.4.6]# make && make install

3、安裝apr-until

[root@bogon ~]# tar xf apr-util-1.4.1.tar.bz2 
[root@bogon ~]# cd apr-util-1.4.1
[root@bogon apr-util-1.4.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@bogon apr-util-1.4.1]# make && make install

4、編譯安裝httpd2.4

[root@bogon ~]# tar xf httpd-2.4.6.tar.bz2
[root@bogon ~]# cd httpd-2.4.6
[root@bogon httpd-2.4.6]# ./configure --prefix=/usr/local/apache24 --sysconfdir=
/etc/httpd24 --enable-so --enable--ssl --enable-cgi --enable-rewrite --with-zlib
 --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util 
 --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
 
[root@bogon ~]# make && make install

5、啓動服務查查看下監聽端口

[root@bogon ~]# /usr/local/apache24/bin/apachectl start
[root@bogon ~]# ss -tnl 
State      Recv-Q Send-Q                           Local Address:Port                             Peer Address:Port 
LISTEN     0      128                                         :::53263                                      :::*     
LISTEN     0      128                                         :::111                                        :::*     
LISTEN     0      128                                          *:111                                         *:*     
LISTEN     0      128                                         :::80                                         :::*

6、開啓虛擬主機模塊編輯配置文件去除#即可

[root@bogon ~]# vim /etc/httpd24/httpd.conf
Include /etc/httpd24/extra/httpd-vhosts.conf  ##啓用此項

7、配置虛擬主機

[root@bogon ~]# vim /etc/httpd24/extra/httpd-vhosts.conf

<VirtualHost 192.168.1.100:80>
    DocumentRoot "/usr/local/apache24/htdocs/test1"
    ServerName test1.ma.com
    ErrorLog "/var/log/test1/errlog"
    CustomLog "/var/log/test1/acccesslog" common
</VirtualHost>

<VirtualHost 192.168.1.100:80>
    DocumentRoot "/usr/local/apache24/htdocs/test2"
    ServerName test2.ma.com
    ErrorLog "/var/log/test2/errlog"
    CustomLog "/var/log/test2/accesslog" common
</VirtualHost>

8、創建網頁測試文檔

[root@bogon htdocs]# pwd
/usr/local/apache24/htdocs
[root@bogon htdocs]# mkdir test1 test2
[root@bogon htdocs]# echo "test1" > test1/index.html 
[root@bogon htdocs]# echo "test2" > test2/index.html

9、檢查配置文件是否正確

[root@bogon ~]# apachectl -t 
Syntax OK

10、重啓啓動服務測試

[root@bogon ~]# /usr/local/apache24/bin/apachectl restart 

[root@bogon ~]# curl http://test1.ma.com
test1
[root@bogon ~]# curl http://test2.ma.com
test2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章