httpd-2.2項目(虛擬主機、用戶認證、私有網絡安全實現)
實驗環境
提供兩個基於名稱的虛擬主機
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項目(虛擬主機、用戶認證、私有網絡安全實現)