httpd2.2實現身份認證、https及頁面壓縮

1、apache實現身份認證javascript

   apache的身份認證分兩種,一種是基本認證(basic),另外一種是摘要認證(digest)。要實現身份認證那就必需要有賬號和密碼,賬號密碼能夠保存在普通文件中也能夠保存在數據庫中。css


實例:使用httpd2.2實現基自己份認證。html


一、建立一個保密頁面,此處咱們使用服務器的狀態頁面,這個頁面是httpd自身生成的。apache內部有許多內生的處理器,通常來說每一種文件類型都有其隱式的處理器,使用參數SetHandler可讓處理器顯示。編輯httpd的配置文件/etc/httpd/conf/httpd.conf,加上如下幾行。java

<Location /status>
    SetHandler server-status
    Order deny,allow
    allow from all
</Location>

重啓httpd後,打開瀏覽器在地址欄輸入,http://ServerIP/status就能看到apache的狀態了。算法

wKiom1MydNbAQMf_AAMSgPNSl1E779.jpg


二、很顯然這麼重要的頁面,咱們確定不能讓除管理員之外的人看到了,因而咱們可使用身份認證讓這個頁面訪問須要密碼。編輯配置文件裏,剛纔加入的那幾行。數據庫

<Location /status>
    SetHandler server-status  #顯示server-status
    Order deny,allow
    allow from all
    AllowOverride AuthConfig  #開啓實現認證機制
    AuthType Basic            #定義認證機制類型爲基自己份認證
    AuthName 'Apache Server Status' #定義對話框顯示的提示符
    AuthUserFile '/etc/httpd/conf/.htpasswd' #賬號密碼保存路徑
    Require valid-user        #受權賬號文件裏的用戶訪問權限,此處爲全部,也可單獨定義某個或某多個用戶,用逗號隔開
</Location>

此處咱們開啓了這個頁面的基自己份認證功能,並把賬號密碼保存在/etc/httpd/conf/.htpasswd文件裏。既然這個文件保存了賬號和密碼,那麼這個文件就很重要,在實際使用時請謹慎此文件的訪問權限,此處爲了方便咱們把它製做成一個隱藏文件。apache


三、使用命令 htpasswd 建立用戶windows

格式:瀏覽器

htpasswd -c -m /path/passwordfile username

以上命令,若是是添加第二個用戶則不用加上-c參數:安全

wKioL1Myd97BifPXAAExpAdmdV4870.jpg


四、重啓服務,測試效果。

wKioL1MyebbTtCU7AAI6F89xGVQ308.jpg


輸入密碼測試一下:

wKioL1MyegnTBVoJAAC1zMwtibM079.jpg

wKioL1MyegrSBETaAAIyFYDHOOo981.jpg


2、apache實現https安全加密協議

   在網上購物時,到了付款的那一步,一般都會跳轉到一個基於https協議的頁面。由於https是一種基於http協議,在http下加上ssl層,而這個ssl層是在TCP/IP四層模型的應用層上,全部數據在通過這個通道時都會有一個臨時的加密算法加密,因此很安全。apache要實現https協議,須使用mod_ssl模塊,此模塊可使用yum命令獨立安裝。


實例:本地實現https。


一、本地生成CA證書。進入目錄/etc/pki/CA,在該目錄建立CA的自簽證書。

(umask 077; openssl genrsa 2048 > private/cakey.pem)

wKioL1MyfbWytoSEAAEXQNBxk6Y400.jpg


二、爲了免於後面重複輸入CA的資料,咱們編輯一下配置文件/etc/pki/tls/openssl.cnf,修改如下幾個默認參數。

wKioL1MyfyPzDQZxAAM8IVnaNao255.jpg


三、生成CA的證書

openssl req -new -x509 -key private/cakey.pem -days 3655 -out cacert.pem

wKiom1MygC2ggxInAAMhcvrGarI485.jpg


四、生成客戶端數字證書。此處由於咱們服務端和客戶端使用同一臺機器,所以直接在本機生成證書,免去證書上傳的步驟。

在目錄/etc/httpd/conf/下建立一個目錄ssl,在/etc/httpd/conf/ssl下生成客戶端私鑰:

(umask 077; openssl genrsa 1024 > httpd.key)

wKiom1MygSuzAeqeAADwuqZ61-g992.jpg


根據httpd.key私鑰生成證書。

openssl req -new -key httpd.key -out httpd.csr

wKiom1MygcixLrBxAAONEH_BFpE095.jpg


五、CA籤曙客戶端證書。

openssl ca -in httpd.csr -out httpd.crt

wKioL1Myh27R6xltAAM5DFRzJVU178.jpg


六、安裝mod_ssl模塊,可使用yum安裝,也直接使用rpm命令安裝軟件包:

wKiom1MyhT2R7fs2AAFV8fmNz1U062.jpg


七、編輯配置文件/etc/httpd/conf.d/ssl.conf。


從文件開頭咱們能夠看到,模塊已經加載,監聽的端口是443:

wKioL1MyhVyz-wZmAABzY0p-RPQ273.jpg


指定公鑰和私鑰路徑:

wKiom1MyhlHBuCwKAAHuGSg-X38796.jpg


八、把CA的數字證書文件/etc/pki/CA/cacert.pem下載至本地windows電腦,並改名爲cacert.crt。

wKioL1MyiO6RfnkRAAAd6Skf3Qs593.jpg


直接雙擊並安裝證書到受信任的證書頒發機構:

wKiom1MyiWfjwkSdAAHnosekwiw576.jpg


九、重啓服務,查看https的443端口號是否被監聽。

wKiom1Myi4fBgSERAAJkfCkJ81A153.jpg


十、在網站根目錄建立一個測試用的首頁文件,並在本地window7系統的電腦裏C:\Windows\System32\drivers\etc\hosts添加服務器的IP地址並綁定域名www.wubinary.com。

在本地電腦的瀏覽器上輸入域名 https://www.wubinary.com,測試效果:

wKioL1MyjKShpFH-AADjbYP8WVI935.jpg


測試成功!


3、apache實現頁面壓縮

   爲了加快網站頁面訪問速度,服務器端能夠把網站頁面裏指定格式的內容進行壓縮傳送。可是有的時候客戶端瀏覽器可能不支持解壓縮的功能,因而咱們能夠把內容不壓縮返回給它,讓支持壓縮的瀏覽器訪問的內容爲壓縮內容。具體參數以下:

SetOutputFilter DEFLATE  #開啓壓縮模塊
# Restrict compression to these MIME types  定義須要壓縮的文件類型
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
                                                                                         
# Level of compression (Highest 9 - Lowest 1)  定義壓縮級別
DeflateCompressionLevel 9         
                                                                                             
# Netscape 4.x has some problems.   此類瀏覽器支持壓縮
BrowserMatch ^Mozilla/4 gzip-only-text/html
                                                                                             
# Netscape 4.06-4.08 have some more problems  此類不支持壓縮
BrowserMatch ^Mozilla/4\.0[678] no-gzip
                                                                                    
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

實例: apache實現頁頁壓縮

一、在目錄/etc/httpd/conf.d/下新建一個配置文件deflate.conf,添加以上內容

wKioL1MykWST6E1wAAJ_Be1t6z8680.jpg


二、爲了測試效果,咱們故意弄一個大文本文件做爲首頁,本地瀏覽器測試效果:

wKioL1MykZrQGIC5AAMoY-qSaTw649.jpg


設置成功!

相關文章
相關標籤/搜索