標籤:httpd https
分別使用httpd-2.2和httpd-2.4實現
1.建立httpd服務,要求:
1) 提供兩個基於名稱的虛擬機器主機www1, www2;有單獨的錯誤記錄檔和訪問日誌;
2) 通過www1的/server-status提供狀態資訊,且僅允許link使用者訪問;
3) www2不允許192.168.1.0/24網路中任意主機訪問;
2.為上面的第2個虛擬機器主機提供https服務;
首先在CentOS6.7中安裝httpd-2.2版本的
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/05/A0/wKiom1mor2ahBUlGAAAITzFEBxI371.png" title="1.png" alt="wKiom1mor2ahBUlGAAAITzFEBxI371.png" />
在CentOS 7.2中安裝httpd-2.4版本的
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/05/A0/wKiom1mor5CTRIDiAAAH5-q5uGE075.png" title="2.png" alt="wKiom1mor5CTRIDiAAAH5-q5uGE075.png" />
為了避免因為修改主設定檔,造成未知錯誤,可以將建立虛擬機器主機的設定檔,放在/etc/httpd/conf.d/ 目錄下,這樣,httpd服務在啟動過程中,同樣也會載入此目錄的設定檔,而避免不必要的麻煩。
在虛擬機器主機設定檔前先建立以下目錄:
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/A4/51/wKioL1mor52SJJKGAAAwUh8mEFo437.png" title="3.png" alt="wKioL1mor52SJJKGAAAwUh8mEFo437.png" />
在/etc/httpd/conf.d/目錄下建立virtualhost.conf檔案,配置以下內容
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/05/A0/wKiom1mor82AzDdSAAAwnVIJavw821.png" title="4.png" alt="wKiom1mor82AzDdSAAAwnVIJavw821.png" />
在各個虛擬機器主機的根目錄下面建立index.html的首頁檔案
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/05/A0/wKiom1mor-vA_M80AAATQVTO85g367.png" title="5.png" alt="wKiom1mor-vA_M80AAATQVTO85g367.png" />
配置完成後,驗證設定檔是否存在錯誤,顯示正常。
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/A4/51/wKioL1mor_LSt7-xAAAGAQOtkR8461.png" title="6.png" alt="wKioL1mor_LSt7-xAAAGAQOtkR8461.png" />
重新啟動httpd伺服器,確保服務正常
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/05/A0/wKiom1mosCGAQ0A5AACqU4iLRKQ706.png" title="7.png" alt="wKiom1mosCGAQ0A5AACqU4iLRKQ706.png" />
修改/etc/hosts檔案,添加以下內容:
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/05/A0/wKiom1mosEOA56IZAAAQPYw0nIE028.png" title="8.png" alt="wKiom1mosEOA56IZAAAQPYw0nIE028.png" />
利用curl命令,驗證伺服器虛擬機器主機是否配置正確
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/A4/51/wKioL1mosETRMPUsAAANNAs-u_s223.png" title="9.png" alt="wKioL1mosETRMPUsAAANNAs-u_s223.png" />
顯示成功!讓我們看看伺服器端是否產生了日誌
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/05/A0/wKiom1mosHLBQ6MmAABt4Q1WgyA290.png" title="10.png" alt="wKiom1mosHLBQ6MmAABt4Q1WgyA290.png" />
伺服器端產生日誌了,說明第一題完成了,下面我們在看第二題吧。
通過www1的/server-status提供狀態資訊,且僅允許link使用者訪問
server-status在主設定檔/etc/httpd/conf/httpd.conf九百多行
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/05/A0/wKiom1mosJCBhZb7AAARz8wu7L4397.png" title="11.png" alt="wKiom1mosJCBhZb7AAARz8wu7L4397.png" />
把這段代碼複製到建立的virtualhost.conf檔案裡面
這個link使用者,是用httpd程式裡面內建的工具產生的,只允許登入web頁面用的,是專屬於這個服務的虛擬使用者。這個工具就是htpasswd命令
我們先產生一個叫做link的使用者,順便在建立一個叫做qhd的使用者:
link的帳號密碼均為link
qhd的帳號密碼均為qhd
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/05/A0/wKiom1mosKqg19TCAAApqsLsK94247.png" title="12.png" alt="wKiom1mosKqg19TCAAApqsLsK94247.png" />
建立好帳號後,virtualhost.conf檔案修改如下:
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/A4/51/wKioL1mosKyB0tMYAABJtINL-lE792.png" title="13.png" alt="wKioL1mosKyB0tMYAABJtINL-lE792.png" />
首先驗證一下,www1的首頁面是否正常
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/A4/51/wKioL1mosMTRCLJIAAAh54GbUPg577.png" title="14.png" alt="wKioL1mosMTRCLJIAAAh54GbUPg577.png" />
沒有問題,那在驗證一下/server-status頁面
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/05/A0/wKiom1mosPSDIaRwAABs7T7DAh0781.png" title="15.png" alt="wKiom1mosPSDIaRwAABs7T7DAh0781.png" />
先利用qhd帳號驗證一下,由於認證不允許qhd帳號訪問,所以一直提示登入的這個頁面,那在試一下link
帳號驗證成功,顯示出了status頁面
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/A4/51/wKioL1mosPWyJK8-AAD643VuktQ668.png" title="16.png" alt="wKioL1mosPWyJK8-AAD643VuktQ668.png" />
下面進行第三小題:
這個問題是虛擬機器主機www2不允許192.168.1.0/24網路中任意主機訪問,需要修改設定檔:
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/05/A0/wKiom1mosSSRJ5ZAAABazKubPzg236.png" title="17.png" alt="wKiom1mosSSRJ5ZAAABazKubPzg236.png" />
在虛擬機器主機的www2的配置參數中修改,修改完成之後,重啟httpd服務
登入192.168.1.0主機,利用curl命令測試一下:
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/A4/51/wKioL1mosSiS_5jZAAAjVJkGYpE242.png" title="18.png" alt="wKioL1mosSiS_5jZAAAjVJkGYpE242.png" />
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/05/A0/wKiom1mosVLyeoeVAAAesICrXSs072.png" title="19.png" alt="wKiom1mosVLyeoeVAAAesICrXSs072.png" />
對虛擬機器主機www1.link.com,可以訪問,但是對www2.link.com來說,http報文head資訊,響應報文狀態代碼403,禁止用戶端訪問了!
所以,到此第一題做完了,下面進行第二題的操作。
為虛擬機器主機www2.link.com提供https服務,那麼httpd服務需要裝載一個mod_ssl模組,預設未安裝。下面進行安裝操作:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/A4/51/wKioL1mosVrguVo9AABVBT6BqO8589.png" title="20.png" alt="wKioL1mosVrguVo9AABVBT6BqO8589.png" />
安裝完成後,可以看到此模組已經在/etc/httpd/conf.d目錄下,產生一個ssl.conf的設定檔
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/A4/51/wKioL1mosXLz-MvnAAAXCcI_N-Y979.png" title="21.png" alt="wKioL1mosXLz-MvnAAAXCcI_N-Y979.png" />
下面的操作步驟是,搭建私人CA,並且伺服器從CA申請認證:
建立必要檔案和產生CA機構私密金鑰:
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/A4/51/wKioL1mosYvCYLkNAAAu0VBtRds775.png" title="22.png" alt="wKioL1mosYvCYLkNAAAu0VBtRds775.png" />
產生自簽認證
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/05/A0/wKiom1mosbjAMr8sAABe8ow-XfM550.png" title="23.png" alt="wKiom1mosbjAMr8sAABe8ow-XfM550.png" />
到此私人CA搭建基本完成,下面伺服器開始申請認證:
web伺服器端建立私密金鑰檔案,並產生申請認證
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/05/A0/wKiom1mosdiRi8omAACTwjoqQ9M182.png" title="24.png" alt="wKiom1mosdiRi8omAACTwjoqQ9M182.png" />
將web伺服器產生的認證發送給CA伺服器
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/A4/51/wKioL1mosd_gPvg6AAAXFh9GpcI624.png" title="25.png" alt="wKioL1mosd_gPvg6AAAXFh9GpcI624.png" />
CA簽署認證:
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/05/A0/wKiom1mosgvBt1zSAAAQvBPdOVI489.png" title="26.png" alt="wKiom1mosgvBt1zSAAAQvBPdOVI489.png" />
將此認證發給另一個虛擬機器主機,並修改ssl的設定檔/etc/httpd/conf.d/ssl.conf
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/A4/51/wKioL1mosg3jhRLiAAAJ017GYtw195.png" title="27.png" alt="wKioL1mosg3jhRLiAAAJ017GYtw195.png" />
將修改以下幾項:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/A4/51/wKioL1mosiTCTDH6AAATNKTUesY924.png" title="28.png" alt="wKioL1mosiTCTDH6AAATNKTUesY924.png" />
驗證修改的檔案是否有語法錯誤,並重新載入配置:
測試虛擬機器主機www2的https服務是否能正常訪問
顯示無法驗證認證,由於CA的認證還未匯入到瀏覽器
我們可以將CA認證發到測試的機器上,並用CA認證進行測試,如下
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/05/A0/wKiom1moslLhf72tAAAJDhil1v8825.png" title="29.png" alt="wKiom1moslLhf72tAAAJDhil1v8825.png" />
顯示結果為虛擬機器主機www2的認證通過了驗證,並得以顯示。
本文出自 “12657170” 部落格,請務必保留此出處http://12667170.blog.51cto.com/12657170/1961595
httpd-2.2及httpd-2.4版本實現對檔案和使用者的許可權管理以及網頁的https的功能