http站點的安全性

http站點的安全性

1.1. http簡介:

HTTPHyper Text Transfer Protocol(超文本傳輸協議)的縮寫。它的發展是萬維網協會(World Wide Web Consortium[5] Internet工作小組IETFInternet Engineering Task Force[6] 合作的結果,(他們)最終發佈了一系列的RFCRFC 1945[7] 定義了HTTP/1.0版本。其中最著名的就是RFC 2616[8] RFC 2616定義了今天普遍使用的一個版本——HTTP 1.1。爲紀念Tim Berners-Lee提出HTTP後對互聯網發展的貢獻,萬維網協會保留有他最原始提交的版本[9] 

HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先於圖形)[10] 

HTTP是一個應用層協議,由請求和響應構成,是一個標準的客戶端服務器模型。HTTP是一個無狀態的協議。

HTTP協議的主要特點可概括如下:

1、支持客戶/服務器模式。支持基本認證[11] 和安全認證(見後文《安全協議》)

2、 簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GETHEADPOST。每種方法規定了客戶與服務器聯繫的類型不同。由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。

3、靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。

4HTTP 0.91.0使用非持續連接:限制每次連接只處理一個請求,服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。

HTTP 1.1使用持續連接:不必爲每個web對象創建一個新的連接,一個連接可以傳送多個對象。

5、無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。

另一方面,在服務器不需要先前信息時它的應答就較快。

 

實現http站點的安全性主要有一下幾個方面

1.身份驗證     2.來源控制    3.加密訪問

 

1.2. 網絡拓撲:

20FCCDF8304D4A799CC4AA98FC96AD6A

1.3. 實驗環境 

HTTP server平臺: Os     centos 6.4  版本號2.6.32-431.el6.i686  

32位操作系統

                   軟件包  httpd-2.2.15-29.el6.centos.i686.rpm

                       openssl-1.0.1e-15.el6.i686.rpm

                       mod_ssl-2.2.15-29.el6.centos.i686.rpm

案例一:  

httpd的默認站點實現身份驗證

 

安裝好httpd,編輯httpd的配置文件/etc/httpd/conf/httpd.conf

E2926592C7CB4638BDEC4303808D8E34

找到httpd的默認站點目錄<Directory "/var/www/html"> 

AllowOverride None  改爲  AllowOverride all

A92867A67954433C900D50391F3B4502

/var/www/html/創建 一個.htaccess 的說明文件,說明文件包含一下內容:

 autheuserfile

 authname

 authtype

required

C9758AFA3101490997C76739F0A6D9B2

來到/var/www目錄下使用htpasswd 創建賬號庫.htpasswd並創建一個用戶:

xiaoming  密碼:123

EA358705E0C44C7B9AC310E1E14D0AA8

進入/var/www/html/目錄下建立一個小頁面

5D69838003D4452CB68A1B2D4ADBAA71 

FE25AD2CAF24480AB9ADD1D185C9C928

重啓httpd服務後打開一臺客戶機測試一下:

                       

08BE93ADD02343A2A027ADE1BE063AE2  F9E7CB1B85DC43E5B10AB81B47D8BB58 

   

可以看到需要進行驗證才能夠訪問,輸入賬號:xiaoming 密碼:123 後成功看到了  welcome!!!

4F521E6754704DE7BC079773019C8594

B754FA30732142B28BBF974F555C3889

1.3.1. 案例二:  

            httpd的默認站點進行來源控制

 

 

 

 

編輯httpd的配置文件/etc/httpd/conf/httpd.conf

E2926592C7CB4638BDEC4303808D8E34

找到httpd的默認站點目錄<Directory "/var/www/html">   在訪問控制規則

寫入只允許來源爲192.168.2.50的主機訪問

0342B34E14374C2DB31FE2C72F0B8E83

 

 

用一個地址爲192.168.2.60的主機來訪問服務器

2046C5431A174F80A6AF02E03392A855

直接跳出了測試頁面訪問不成功

CFB558165A53436888294A251360C632

 

 

 

使用地址爲192.168.2.50的主機來訪問

  2902FA09E5FA49E5946175F3FF63B7FC 

 

出現了welcome!!訪問成功

6774C6B9B6984C12A92E6156F1A3DA09

1.3.2. 案例三: 

加密訪問

 

https加密訪問示意圖:

5A6D1F474046408F8B3CC7E98195AB5E

 

證書頒發機構CA 的實現    windows   安裝證書服務

                     linux      openca

                                   openssl

 

我們使用openssl來實現CA的功能:

 

編輯openssl的配置文件/etc/pki/tls/openssl.cnf

更改CA policy選項,把countryNamestateOrProvinceNamelocalityName

都改爲可選擇(optional

4F687BA2704D45C1A230FD081F222104

根據自己的需要更改CA policy的默認選項

D1027499A2684D0A8DC83ED11BE2B74B

 

來到openssl的配置文件/etc/pki/tls/openssl.cnf 中的[ CA_default ]條目下看是否有這些默認文件如果沒有創建這些文件用於建立CA的服務和產生CA自己的證書

1783A27C8C1043C188C92F0E4A8A7D7B

77EC9B38075B4416989DD4AB353803E5

/etc/pki/CA/目錄下創建一個index.txt的索引文件用於記錄CA所頒發的證書

[root@vbird CA]# touch index.txt

創建一個serial文件用於記錄當前序列號並給它一個初始值01

[root@vbird CA]# touch serial

[root@vbird CA]# echo "01" >serial

使用openssl  genrsa產生一個rsa加密算法的CA自己的私鑰,並輸入到/private/cakey.pem

[root@vbird CA]# openssl  genrsa >private/cakey.pem

爲了安全性更改cakey.pem權限

[root@vbird CA]# chmod 600 private/cakey.pem

使用cakey.pem來創建CA的公鑰cacert.pem

24DE4B64BE5D4872889572FEFAEAF730

web服務器頒發證書:

創建一個目錄用於存放httpd的私鑰

[root@vbird ~]# mkdir /etc/httpd/certs/private

生成httpd的私鑰

C9DC421E06304B7EA14A54E0396EA26C

更改權限

[root@vbird private]# chmod  600 httpdkey.pem

使用httpd的私鑰來申請httpd的請求文件httpdcert.pem

6D47BD0AB8CF4633B9C9282A427BBF6F

httpd的請求文件httpdcert.pemCA申請證書  httpd.cart

[root@vbird certs]# openssl ca -in httpdcert.pem -out  httpd.cert

編輯/etc/httpd/conf.d/ssl.conf文件把httpd服務器和證書捆綁

A29AD4386BBD49AF9FC498456A779476

重啓httpd服務

7F289343334A48A2B7EE85E07C9FA8A3

 

 

打開一臺測試機輸入https://192.168.2.100

 

2FA3E46A3DB84FD5BC2D07456E4FF924

可以看到出現了證書選項

E53C0FE9604545C3AD886662BF79DE1C

點擊“查看證書”選擇“證書路徑”後安裝證書,將rootca.org添加爲受信任的根證書頒發機構

CC51921E56C846B38F78401BDA47F921 D6875BB6B8AE43FCA3CA39B95415B4BB

再次打開瀏覽器後訪問成功!

C24F0524D44944EC9C5B688242E9D032


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章