天天看點

linux實作https方式通路站點

超文本傳送協定(HyperText Transfer Protocol,HTML)是一種通信協定,它允許将超文本标記語言文檔從web伺服器傳送到wel浏覽器。

HTML的特點:

1.支援客戶/伺服器模式。

2.簡單快速:客戶向伺服器請求服務時,隻需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯系的類型不同。由于HTTP協定簡單使得HTTP伺服器的程式規模小,因而通信速度很快。

3.靈活:HTTP允許傳輸任意類型的資料對象。正在傳輸的類型由Content-Type加以标記。4.無連接配接:無連接配接的含義是限制每次連接配接隻處理一個請求。伺服器處理完客戶的請求,并收到客戶的應答後,即斷開連接配接。采用這種方式可以節省傳輸時間。

5.無狀态:HTTP協定是無狀态協定。無狀态是指協定對于事務處理沒有記憶能力。 缺少狀态意味着如果後續處理需要前面的資訊,則它必須重傳,這樣可能導緻每次連接配接傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

用戶端浏覽器以https的方式通路web伺服器的過程:

linux實作https方式通路站點

用戶端通過https方式通路伺服器全過程描述:

1.客戶機通過https通路web伺服器,web伺服器向客戶機出示自己的證書

2. 客戶機驗證證書的有效性,包括發證時間,發證機關,執行者辨別。

3.如果客戶機驗證證書通過,客戶機随機産生128位的key,再利用證書檔案傳遞的public key對該随即key機進行加密。

4.加密後傳送至伺服器端,伺服器再利用自己的public key 對加密的key進行解密,得到客戶機的随機key值。

5.這時兩端的key值相同,利用該key進行加密通訊

linux下通過Apache  httpd軟體實作https方式通路站點的實作:

1.由于案例最後要安裝mod_ssl軟體,而該軟體具有依賴性,是以先配置yum(本地yum)。建立挂載點,挂載CD光牒,編輯/etc/yum.repos.d/rhel-debuginfo.repo

有關yum的詳細配置請通路我的另一篇博文:http://jialiang10086.blog.51cto.com/4496483/960178 

linux實作https方式通路站點
linux實作https方式通路站點

2.安裝WWW伺服器軟體,在這裡使用httpd-2.2.3-31.el5.i386.rpm,采用yum或者rpm安裝

rpm -ivh httpd-2.2.3-31.el5.i386.rpm

yum install httpd

linux實作https方式通路站點

實作Apache 站點安全有三種方式:

   a. 身份驗證

   b.來源控制

   c.ssl安全套接字層

下面一一實作上述3種方式:

A.身份驗證

3.編輯/etc/httpd/conf/httpd.conf 檔案,修改第327行 :将AllowOverride None 改為AllowOverride all ;更改後才能使身份驗證配置生效

linux實作https方式通路站點

4.上步中修改 AllowOverride all  是在<Directory "/var/www/html">  </Directory>内,對應的是對通路/var/www/htm 目錄内的網頁時的主機進行身份驗證。

   在/var/www/htm 中産生一個隐藏檔案.htaccess ,在此檔案中寫入驗證規則

linux實作https方式通路站點
linux實作https方式通路站點

5.産生上步中的 .password檔案,并建立賬戶user1 和 user2 。htpasswd [–c] .htpassword user1

linux實作https方式通路站點
linux實作https方式通路站點

6.切換到/var/www/html 産生網頁檔案,重新開機httpd服務

linux實作https方式通路站點
linux實作https方式通路站點
linux實作https方式通路站點

B.來源控制

通過控制允許哪些使用者可以通路站點,哪些不能通路站點來實作來源控制的目的

Order allow,deny

Allow from all

7.設定隻允許192.168.101.11主機通路該站點,設定完成後重新開機httpd服務

linux實作https方式通路站點

8.測試 ,ip為192.168.101.11主機可以通路該站點。

linux實作https方式通路站點

9.ip為192.168.101.12 主機無法通路該站點

linux實作https方式通路站點

C.安全套接字層ssl

搭建證書伺服器CA

10.編輯檔案/etc/pki/tls/openssl.cnf

linux實作https方式通路站點

将88行到90 行的match  改為optional ,否則将隻有和CA在同一個國家、省份、組織的主機才能從CA獲得證書

linux實作https方式通路站點

修改CA預設的名稱選項,當向該CA提出證書申請時顯示為預設。

linux實作https方式通路站點

11.根據openssl.cnf檔案的說明,需要建立三個目錄:certs  newcerts  crl 和兩個檔案:index.txt  serial

linux實作https方式通路站點

12.CA 證書伺服器産生自己的私鑰cakey.pem 。 openssl genrsa 1024 &gt; private/cakey.pem

linux實作https方式通路站點

13.CA伺服器根據自己的私鑰産生自己的證書:openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650

linux實作https方式通路站點

該處的預設值即為第19步中修改的預設值

linux實作https方式通路站點

14.×××檔案和私鑰檔案的權限為600

linux實作https方式通路站點

15.在WWW伺服器的根目錄/etc/httpd下建立檔案夾certs,用來存放伺服器的私鑰,請求,以及證書

linux實作https方式通路站點

16.www伺服器産生自己的私鑰:openssl genrsa 1024 &gt; httpd.key

linux實作https方式通路站點

17 根據私鑰httpd.key 來産生請求檔案:openssl req -new -key httpd.key -out httpd.csr

linux實作https方式通路站點
linux實作https方式通路站點
linux實作https方式通路站點

18.CA伺服器根據請求檔案頒發證書:openssl ca -in httpd.csr -out httpd.cert

linux實作https方式通路站點

19.×××檔案和私鑰檔案的權限為600

linux實作https方式通路站點

現在www伺服器已經有自己的證書和私鑰了,當用戶端浏覽器通過https的方式通路該web伺服器,則該伺服器需要将證書顯示到用戶端浏覽器,這需要ssl和httpd相結合

20.安裝mod_ssl 子產品:yum install mod_ssl

linux實作https方式通路站點

21.安裝後,會在/etc/httpd/conf.d下産生檔案ssl.conf檔案

linux實作https方式通路站點

22編輯ssl.conf檔案

linux實作https方式通路站點

23.重新開機httpd服務

linux實作https方式通路站點

24.測試,顯示有兩個問題:一是頒發證書的機構不被信任,二是證書上顯示的名字和該主機通路的名字不一緻

linux實作https方式通路站點

25.如果想要信任某個證書頒發機構,隻需将該頒發機構的證書導入浏覽器,但是點選檢視證書,證書路徑中不顯示頒發機構的證書

linux實作https方式通路站點

26  繼續修改ssl.conf,×××鍊

linux實作https方式通路站點

27.重新開機httpd服務,再次進行測試

linux實作https方式通路站點

28.點選檢視證書,安裝證書

linux實作https方式通路站點
linux實作https方式通路站點
linux實作https方式通路站點

29安裝後可在浏覽器中檢視

linux實作https方式通路站點

30.再次差可能通路情況,顯示隻有名稱無效

linux實作https方式通路站點

31.修改hosts檔案,将192.168.101.250的對應的域名設定為www.zzu.edu.cn

linux實作https方式通路站點
linux實作https方式通路站點

32.最後一步,修改httpd.conf 檔案,禁用80 端口,以後隻用https的方式通路

linux實作https方式通路站點
linux實作https方式通路站點

重新開機httpd

linux實作https方式通路站點

補充案例---基于IP位址的虛拟主機

基于IP 位址的虛拟主機 多個ip 多個名字 端口号80 多個站點 實驗要求: 基于ip 的虛拟主機,三個站點及其ip 位址和站點主目錄分别為: 192.168.101.250 www.cisco.com /var/www/html 192.168.101.251 tec.cisco.com /var/www/tec 192.168.101.252 mkt.cisco.com /var/www/mkt 要求 www.cisco.com 站點可通過http 方式通路,tec.cisco.com 和 mkt.cisco.com 通過https 的方式通路 1. 安裝dns 伺服器 rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
linux實作https方式通路站點
2. 在/var/named/chroot/etc 下cp -p named.caching-nameserver.conf named.conf
linux實作https方式通路站點
linux實作https方式通路站點
linux實作https方式通路站點
3. 編輯區域聲明檔案named.rfc1912.zones ,聲明區域cisco.com
linux實作https方式通路站點
4. 切換到目錄/var/named/chroot/var/named 下,cp -p localdomain.zone cisco.com.db
linux實作https方式通路站點
5. 解析測試(如果在該dns 伺服器上測試,需要指明dns 伺服器位址/etc/resolv.conf 或setup
linux實作https方式通路站點
6. 安裝httpd 伺服器,安裝證書伺服器省略 7. 修改httpd 的配置檔案httpd.conf <VirtualHost 192.168.101.250:80> ServerAdmin [email protected] DocumentRoot /var/www/html ServerName www.cisco.com ErrorLog logs/www_error_log CustomLog logs/www_access_log common </VirtualHost> <VirtualHost 192.168.101.251:80> DocumentRoot /var/www/tec ServerName tec.cisco.com ErrorLog logs/tec_error_log CustomLog logs/tec_access_log common <VirtualHost 192.168.101.252:80> DocumentRoot /var/www/mkt ServerName mkt.cisco.com ErrorLog logs/mkt_error_log CustomLog logs/mkt_access_log common
linux實作https方式通路站點
8. 建立www ,tec ,mkt 的站點主目錄及網頁檔案
linux實作https方式通路站點
linux實作https方式通路站點
linux實作https方式通路站點
9. 添加網卡,設定ip 位址
linux實作https方式通路站點
10. 測試通路三個站點
linux實作https方式通路站點
linux實作https方式通路站點
linux實作https方式通路站點
11. 分别為三個站點建立目錄用來存放各自的私鑰檔案。請求檔案,以及證書檔案。由于本實驗不要求www 主站點使用https 方式通路,是以該站點不用申請證書
linux實作https方式通路站點
12. tec 站點産生私鑰檔案tec_httpd.key
linux實作https方式通路站點
13. tec 站點根據自己私鑰産生請求檔案
linux實作https方式通路站點
linux實作https方式通路站點
14.CA 伺服器為tec 站點頒發證書
linux實作https方式通路站點
15. 同理産生mkt 的私鑰和請求,和證書
linux實作https方式通路站點
linux實作https方式通路站點
linux實作https方式通路站點
linux實作https方式通路站點
16. 修改ssl.conf 檔案 ,當用戶端通路不同的站點時,加載不同的證書
linux實作https方式通路站點
虛拟站點一,不使用https 方式,是以此處端口為80
linux實作https方式通路站點
虛拟站點二,使用https 方式通路,端口号設定為443
linux實作https方式通路站點
該虛拟站點的證書檔案、私鑰檔案、證書鍊位置,當用戶端通路該站點時,将該證書發送給用戶端
linux實作https方式通路站點
虛拟站點三,使用https
linux實作https方式通路站點
linux實作https方式通路站點
17. 編輯httpd.conf 檔案,該檔案包含ssl.conf 檔案。 在此處,隻監聽192.168.101.250 的80 端口,如果直接寫Linstn 80 ,則所有站點的80 端口都将開啟,tec 和mkt 站點這時也将可以通過http 方式通路,不安全。

繼續閱讀