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的狀態了。算法
二、很顯然這麼重要的頁面,咱們確定不能讓除管理員之外的人看到了,因而咱們可使用身份認證讓這個頁面訪問須要密碼。編輯配置文件裏,剛纔加入的那幾行。數據庫
<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參數:安全
四、重啓服務,測試效果。
輸入密碼測試一下:
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)
二、爲了免於後面重複輸入CA的資料,咱們編輯一下配置文件/etc/pki/tls/openssl.cnf,修改如下幾個默認參數。
三、生成CA的證書
openssl req -new -x509 -key private/cakey.pem -days 3655 -out cacert.pem
四、生成客戶端數字證書。此處由於咱們服務端和客戶端使用同一臺機器,所以直接在本機生成證書,免去證書上傳的步驟。
在目錄/etc/httpd/conf/下建立一個目錄ssl,在/etc/httpd/conf/ssl下生成客戶端私鑰:
(umask 077; openssl genrsa 1024 > httpd.key)
根據httpd.key私鑰生成證書。
openssl req -new -key httpd.key -out httpd.csr
五、CA籤曙客戶端證書。
openssl ca -in httpd.csr -out httpd.crt
六、安裝mod_ssl模塊,可使用yum安裝,也直接使用rpm命令安裝軟件包:
七、編輯配置文件/etc/httpd/conf.d/ssl.conf。
從文件開頭咱們能夠看到,模塊已經加載,監聽的端口是443:
指定公鑰和私鑰路徑:
八、把CA的數字證書文件/etc/pki/CA/cacert.pem下載至本地windows電腦,並改名爲cacert.crt。
直接雙擊並安裝證書到受信任的證書頒發機構:
九、重啓服務,查看https的443端口號是否被監聽。
十、在網站根目錄建立一個測試用的首頁文件,並在本地window7系統的電腦裏C:\Windows\System32\drivers\etc\hosts添加服務器的IP地址並綁定域名www.wubinary.com。
在本地電腦的瀏覽器上輸入域名 https://www.wubinary.com,測試效果:
測試成功!
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,添加以上內容
二、爲了測試效果,咱們故意弄一個大文本文件做爲首頁,本地瀏覽器測試效果:
設置成功!