溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

發(fā)布時(shí)間:2020-07-16 21:48:36 來(lái)源:網(wǎng)絡(luò) 閱讀:546 作者:001100ll 欄目:建站服務(wù)器

準(zhǔn)備工作:在Centos7中安裝httpd,使用yum安裝或自己編譯安裝,建議使用yum安裝,快捷又方便。

          關(guān)閉防火墻及selinux。


  1. 提供兩個(gè)基于名稱的虛擬主機(jī)www1, www2;有單獨(dú)的錯(cuò)誤日志和訪問(wèn)日志;

    先建立虛擬主機(jī)www1

    a.在httpd的輔助配置文件目錄/etc/httpd/conf.d/中創(chuàng)建屬于虛擬主機(jī)自己的配置文件

~]# vim /etc/httpd/conf.d/vhosts-www1.conf

<VirtualHost 192.168.127.128:80>
        DocumentRoot "/myweb/vhosts/www1"
        ServerName www.link1.com
        ErrorLog "/myweb/vhosts/www1/logs/error_log"
        CustomLog "/myweb/vhosts/www1/logs/access_log" combined
</VirtualHost>
<Directory "/myweb/vhosts/www1">
    AllowOverride None
    Options None
    Require all granted
</Directory>

   b.創(chuàng)建好配置文件后,再創(chuàng)建文檔根目錄及日志目錄

~]# mkdir /myweb/vhosts/www1/logs -pv

   c.創(chuàng)建并向文檔根目錄下的index.html寫(xiě)點(diǎn)東西,并在本機(jī)的C:\Windows\System32\drivers\etc目錄下的HOST文件中添加192.168.127.128  www.link1.com。

重新載入配置文件

systemctl reload httpd.service

然后用本地瀏覽器打開(kāi),結(jié)果如下:

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

     查看訪問(wèn)日志/myweb/vhosts/www1/logs/access_log,內(nèi)容如下:       

       192.168.127.1 - - [29/Aug/2017:15:40:00 +0800] "GET /sky/ HTTP/1.1" 200 1319 "-"          "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"

     狀態(tài)碼為200,請(qǐng)求成功。


虛擬主機(jī)www2的建立過(guò)程與www1的沒(méi)有差別,只不過(guò)把相關(guān)名稱改了就行,最后用瀏覽器測(cè)試,結(jié)果如下:httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能



2.訪問(wèn)控制

  a.通過(guò)www1的/server-status提供狀態(tài)信息,且僅允許link用戶訪問(wèn);

    a-1.修改www1的配置文件如下:

<VirtualHost 192.168.127.128:80>
        DocumentRoot "/myweb/vhosts/www1"
        ServerName www.link1.com
        ErrorLog "/myweb/vhosts/www1/logs/error_log"
        CustomLog "/myweb/vhosts/www1/logs/access_log" combined
</VirtualHost>
<Directory "/myweb/vhosts/www1">
    AllowOverride None
    Options None
    AuthType basic
    AuthName "Please input user and password to login,only link has permission to access?。?
     AuthUserFile /etc/httpd/users/.htpasswd
     Require user link
</Directory>

    a-2.使用htpasswd命令創(chuàng)建虛擬用戶

~]# mkdir /etc/httpd/users
~]# htpasswd -c -m /etc/httpd/users/.htpasswd link
~]# htpasswd -m /etc/httpd/users/.htpasswd link1

    a-3.重新載入配置文件,打開(kāi)瀏覽器輸入就會(huì)出現(xiàn)以下情況:

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

      當(dāng)輸入link用戶及密碼后:


httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能


httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

   當(dāng)輸入link1用戶及密碼時(shí):

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

     因?yàn)橹辉试Slink用戶登錄:

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

    至此,要求實(shí)現(xiàn)。


  b.www2不允許192.168.127.0/24 網(wǎng)絡(luò)中任意主機(jī)訪問(wèn);

    從之前查看訪問(wèn)日志中看到本主機(jī)的ip地址為192.168.127.1。

    那我們就將www2的配置文件修改如下:

<VirtualHost 192.168.127.128:80>
        DocumentRoot "/myweb/vhosts/www2"
        ServerName www.link2.com
        ErrorLog "/myweb/vhosts/www2/logs/error_log"
        CustomLog "/myweb/vhosts/www2/logs/access_log" combined
<Directory "/myweb/vhosts/www2">
    AllowOverride None
    Options None
    <RequireAll>
      Require all granted
      Require not ip 192.168.127.0/24
    </RequireAll>
</Directory>
</VirtualHost>

  修改之前訪問(wèn)如下:

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

  修改之后訪問(wèn)如下:

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

  至此,所要求的功能實(shí)現(xiàn)。


3.為上面的www2虛擬主機(jī)提供https服務(wù)

  創(chuàng)建私有CA,然后再為本服務(wù)器頒發(fā)自簽證書(shū)。

  a.創(chuàng)建私有CA

    a-1.創(chuàng)建私有CA私鑰文件

~]# (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

    a-2.生成自簽證書(shū)

~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem -days 3653

    a-3.滿足CA所必須的目錄級(jí)文件和文本文件的布局

~]# touch /etc/pki/CA/index.txt
~]# echo 01 > /etc/pki/CA/serial

  b.為服務(wù)器提供證書(shū)

    b-1.創(chuàng)建服務(wù)器的私鑰文件

~]# mkdir /etc/httpd/conf/ssl
~]# cd /etc/httpd/conf/ssl
ssl]# (umask 077 ; openssl genrsa -out httpd.key 4096)

    b-2.生成證書(shū)請(qǐng)求文件

ssl]# openssl req -new -key httpd.key -out httpd.csr -days 3653

    b-3.由CA簽發(fā)證書(shū):在CA所在的服務(wù)器上完成

ssl]# openssl ca -in httpd.csr -out httpd.crt -days 365

  至此證書(shū)頒發(fā)完成。


  c.安裝mod_ssl模塊

    yum -y install mod_ssl

    修改ssl的配置文件的部分內(nèi)容如下:

SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt
<directory "/myweb/vhosts/ssl">
    AllowOverride None
    Options None
    Require all granted
</Directory>
DocumentRoot "/myweb/vhosts/ssl"
ServerName www.link2.com
SSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key

    然后再創(chuàng)建/myweb/vhosts/ssl目錄

~]# mkdir /myweb/vhosts/ssl
~]# echo "welcome to https://www.link2.com" >> /myweb/vhosts/ssl/index.html

   然后重啟服務(wù)。

   不加密的訪問(wèn)如下:

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

   https訪問(wèn)如下:

httpd-2.4實(shí)現(xiàn)虛擬主機(jī)、訪問(wèn)控制及https功能

  因?yàn)樵撟C書(shū)是我們自己頒發(fā)的,所以剛開(kāi)始訪問(wèn)時(shí)會(huì)說(shuō)證書(shū)不受信任或有風(fēng)險(xiǎn),添加例外就行了。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI