1. 程式人生 > >httpd-2.2項目(虛擬主機、用戶認證、私有網絡安全實現)

httpd-2.2項目(虛擬主機、用戶認證、私有網絡安全實現)

strive struggle endeavo attempt

實驗環境

技術分享

  • 提供兩個基於名稱的虛擬主機

    • wp.mykernel.cn,頁面文件目錄為/web/vhosts/www1;錯誤日誌為/var/log/httpd/www1.err,訪問日誌為/var/log/httpd/www1.access;

    • www.mykernel.cn, 頁面文件目錄為/web/vhosts/www2;錯誤日誌為/var/log/httpd/www2.err,訪問日誌為/var/log/httpd/www2.access;

    • 為兩個虛擬主機建立各自的主頁文件index.html,內容分別為其對應的主機名;

    • 通過wp.mykernel.com/server-status輸出httpd工作狀態相關信息,且只允許提供帳號密碼才能訪問(status:status);

  • 為上面的第2個虛擬主機提供https服務,使得用戶可以通過https安全的訪問此web站點;

    • 要求使用證書認證,證書中要求使用的國家(CN)、州(ChengDu)、城市(ChengDu)和組織(MageEdu);

    • 設置部門為Ops,主機名為www.mykernel.cn,郵件為[email protected];

基本配置<172.16.100.1>

  • 配置yum源

      * 掛載光盤
      # mkdir /media/cdrom
      # mount -r /dev/cdrom /media/cdrom
      * yum倉庫配置
      # mv /etc/yum.repos.d/CentOS-Base.repo{,.bak}
      # vim CentOS-Base.repo
          [C6-media]
          name=Base repo for CentOS 6
          failovermethod=priority
          baseurl=file:///media/cdrom
          gpgcheck=1
          gpgkey=file:///media/cdrom/RPM-GPG-KEY-CentOS-6
          enabled=1
  • 安裝httpd-2.2程序

      # yum -y install httpd
  • 啟動服務<172.16.100.1>

      # service httpd start
  • 支持純文本協議客戶端工具訪問測試

      安裝
          # yum -y install curl elinks telnet
      測試
          # curl -I localhost
          # elinks --dump http://localhost
    
          # telnet 172.16.100.1 80
          GET / HTTP/1.1
          Host: 172.16.100.1

配置虛擬主機

  • 準備DocumentRoot,及對應的index.html文件

    <172.16.100.1>

      # install -d /web/vhosts/www{1,2}/
      # echo "wp.mykernel.cn" > /web/vhosts/www1/index.html
      # echo "www.mykernel.cn" > /web/vhosts/www2/index.html
  • 修改/etc/httpd/conf/httpd.conf配置文件<172.16.100.1>

      備份配置文件:
          # cp -v /etc/httpd/conf/httpd.conf{,.bak}
    
      在配置文件中修改並添加如下內容:
          # vim /etc/httpd/conf/httpd.conf 
              #DocumentRoot "/var/www/html"
              NameVirtualHost *:80
              <VirtualHost *:80>
                 ServerName wp.mykernel.cn
                 DocumentRoot /web/vhosts/www1
                 ErrorLog logs/wp.err
                 CustomLog logs/wp.access combined
                 <Location /server-status>
                     SetHandler server-status
                     Order allow,deny
                     allow from all
                     AuthType Basic
                     AuthName "Secure Type/Domain"
                     AuthUserFile "conf.d/.htpasswd"
                     Require user status
                 </Location>
              </VirtualHost>
              <VirtualHost *:80>
                 ServerName www.mykernel.cn
                 DocumentRoot /web/vhosts/www2
                 ErrorLog logs/www.err
                 CustomLog logs/www.access combined
              </VirtualHost>
    
      退出配置文件後:
          # httpd -t
          # htpasswd -c -s /etc/httpd/conf.d/.htpasswd status 
          # service httpd reload
  • 在windows主機中測試,虛擬賬號是否能正常登陸

    • 手動添加解析條目

      進入此文件C:\Windows\System32\drivers\etc,添加如下條目
      
      172.16.100.1        wp.mykernel.cn
      172.16.100.1        www.mykernel.cn
    • 在瀏覽器中,輸入URL,測試結果

      http://wp.mykernel.cn
      http://www.mykernel.cn
      
      http://wp.mykernel.cn/server-status
      賬號:status,密碼:status
    • 圖片 技術分享技術分享

mod_ssl模塊,實現加密通信

  • 自建CA<172.16.100.2>

      # dir=/etc/pki/CA
      # touch $dir/index.txt
      # echo "01" > $dir/serial
      # (umask 077;openssl genrsa -out $dir/private/cakey.pem 2048)
      # openssl req -new -x509 -key $dir/private/cakey.pem -out $dir/cacert.pem -days 7300
          (CN, Beijing, Beijing, MageEdu, Ops, ca.magedu.com, [email protected])
  • 生成請求<172.16.100.1>

      # install -d /etc/httpd/ssl && cd /etc/httpd/ssl
      # (umask 077;openssl genrsa -out httpd.key 2048)
      # openssl req -new -key httpd.key -out httpd.csr -days 365
          (CN, Beijing, Beijing, MageEdu, Ops, www.mykernel.cn, [email protected])
  • 提交請求PUSH<172.16.100.1>

      # scp httpd.csr [email protected]:/tmp
  • 驗證並頒發證書<172.16.100.2>

      # openssl ca -in /tmp/httpd.csr -out $dir/certs/www.mykernel.cn.crt -days 365
  • 獲取證書PULL<172.16.100.1>

      # scp [email protected]:/etc/pki/CA/certs/www.mykernel.cn.crt .
  • 安裝mod_ssl模塊<172.16.100.1>

      # yum -y install mod_ssl
  • 修改/etc/httpd/conf.d/ssl.conf配置<172.16.100.1>

      備份配置文件:
          # cp -v /etc/httpd/conf.d/ssl.conf{,.bak}
      修改配置文件:
          # vim /etc/httpd/conf.d/ssl.conf
              <VirtualHost *:443>
              DocumentRoot "/web/vhosts/www2"
              ServerName www.mykernel.cn
              SSLEngine on
              SSLCertificateFile /etc/httpd/ssl/www.mykernel.cn.crt
              SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
      退出配置文件:
          # httpd -t
          # service httpd restart
      查看443端是否處於監聽狀態
          # ss -tnl
  • 測試是否能正常訪問

    • Linux主機測試<172.16.100.2>

      添加解析記錄:
      # vim /etc/hosts
        172.16.100.1  www.mykernel.cn
      
      # openssl s_client -connect www.mykernel.cn:443 -CAfile /etc/pki/CA/cacert.pem
      New, TLSv1.2/SSLv3
    • Windows主機測試

        * 將172.16.100.2中的公鑰,導入至Windows中的受信任的證書頒發機構列表中
        訪問https://www.mykernel.cn即可

      技術分享技術分享

有問題反饋

在使用中有任何問題,歡迎反饋給我,可以用以下聯系方式跟我交流

  • 郵件:[email protected]

  • QQ: 2192383945



感激

本文由我表哥引導制作,在此留下QQ,博客

  • QQ: 2580259468

  • 博客

  • 技術分享



本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1969289

httpd-2.2項目(虛擬主機、用戶認證、私有網絡安全實現)