HTTPD簡介:
HTTPD 具有很高的穩定性,是深受企業歡迎的主要原因。它占據了市場60%的份額。采用http協議,加密的協議為HTTPS,具有mpm(多進程處理機制)滿足客戶端對站點訪問。其中mpm分為兩種:1.prefork,他是默認采用的一種方式,每當有一個用戶請求訪問便會產生一個進程為其服務,因此,他的穩定性很好,但是他最多同時有8個進程提供httpd服務,缺點就是占用了大量的內存。2.worker,同時最多有2個進程服務,每當有一個請求發過來,會在進程中產生一個線程為其服務,因此,他的穩定性低,優點就是不占用內存。HTTPS實際上應用了Netscape的安全套接字層(SSL)作為HTTP應用層的子層。(HTTPS使用端口443,而不是像HTTP那樣使用端口80來和TCP/IP進行通信。)
http協議的主要特點可概括為:
1. 支持C/S模式。
2. 應用層的協議中,簡單快速,只需傳遞路徑和方法。相應速度快。
3. 靈活,允許傳輸任意類型的數據對象。
4. 無連接協議,在服務器端處理完客戶的請求並受到客戶的應答後,即斷開連接。從而節省了傳輸時間。
5. 無狀態協議。並不跟蹤訪問過它的用戶。
HTTPS與HTTP的區別:
一、https協議需要到ca申請證書,一般免費證書很少,需要交費。
二、http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。
三、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。
四、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
SSL協議主要作用:
認證用戶和服務器,確保數據安全的發送到正確的客戶機和服務器。
SSL協議的握手流程圖:
SSL協議的握手過程:
1.用戶向服務器端發送訪問請求,服務器端向用戶發放證書,該證書中包含了公鑰和頒發機構的名稱等很多重要的信息。
2.客戶端利用服務器傳來的證書來檢驗服務器的合法性,包括證書是否過期,發行服務器證書的CA是否可靠。
3.如果證書檢查通過。客戶端隨機產生一個對稱密碼,值得注意的是客戶端每次訪問都會隨機產生一個密碼。然後用服務器的公鑰對這個對稱密碼進行加密,加密後傳給服務器。
4.服務器使用自己的私鑰對其解密,從而得到客戶端的密碼。
5.然後服務器和客戶端使用相同的密碼對信息進行加密。而且在此過程中ssl會保證數據的完整性。
試驗拓撲圖
硬件需求:
一台服務器(擔任CA、WEBserver),一台pc(扮演客戶端角色~)
軟件需求:
httpd-2.2.3-31.el5.i386.rpm
mod_ssl-2.2.3-31.el5.i386.rpm
實驗步驟:
安裝httpd
[root@zhangc Server]# yum install -y httpd-2.2.3-31.el5.i386.rpm
1》做身份驗證
編輯/var/www/html/.htaccess 對來訪的用戶進行控制
賬號服務目錄位置
驗證類型為基本身份驗證
有效用戶才能訪問
然後使用指令htpasswd來產生.htpasswd
[root@zhangc www]# htpasswd -c .htpasswd user1
-c 表示創建一個新文件 user1 只供user1使用
[root@zhangc www]# htpasswd -c .htpasswd user2
2》做來源控制:
查看訪問記錄:
在/var/log/httpd/目錄中有2個日志文件access_log、error_log。其中access_log 訪問成功的日志記錄。error_log表示訪問失敗的日志記錄。
3》加密訪問https
我們需要搭建:CA(證書的發放機關) WEB服務器(web服務器供用戶訪問web)Client(測試)
分為以下幾個步驟
1.CA的搭建:
CA的分發原理:
CA 證書的頒發機構,webserver向CA發出申請,然後CA將證書分發給WEBServer,然後web server與證書進行綁定,當用戶發送訪問請求時,web server將證書出示給用戶。
進入 /etc/pki/
Vim tls/openssl.conf
Dir CA相關的文件的存放位置
已經發行過的證書的存放位置
Crl 證書吊銷列表 黑名單存放位置
Database 數據庫的索引文件
New-certs_dir 新證書存放的位置
Certificate 發證機關的證書存放位置 CA
Serial 序列號文件
將該文件修改為:
然後創建系統中不存在的文件夾[創建3個文件夾 2個文件Certs crl newcerts index.txt serial cakey.pem(私鑰文件)]
[root@zhangc CA]# mkdir certs crl newcerts
[root@zhangc CA]# touch index.txt serial
創建私鑰和證書
cakey.pem使用openssl
Openssl genrsa gen表示產生 rsa表示非對稱加密算法
並將生成的文件輸入到private/cakey.pem文件中
為了私鑰的安全,修改private/文件夾下的文件權限
有了私鑰才能產生證書
[root@zhangc ~]# cd /etc/pki/tls/
[root@zhangc tls]# vim openssl.cnf
編輯修改默認參數以及分發的匹配原則
[root@zhangc tls]# openssl req -new -key /etc/pki/CA/private/cakey.pem -x509 -out cacert.pem -days 3650【利用cakey.pem來產生證書,有效期為10年】
Web服務器(使用linux來做)
1.私鑰 2.證書請求 3.申請證書
創建文件夾/etc/pki/CA/etc/httpd/certs,用於存放以上3個文件
創建私鑰
[root@zhangc certs]# openssl genrsa 1024 >httpd.key
修改權限,以確保安全性
[root@zhangc certs]# chmod 600 httpd.key
產生一個請求證書
[root@zhangc certs]# openssl req -new -key httpd.key -out httpd.csr
利用csr請求 來 得到一份證書
然後將http與ssl 進行結合實現https來進行訪問
安裝mod_ssl
[root@zhangc Server]# yum install -y mod_ssl-2.2.3-31.el5.i386.rpm
[root@zhangc Server]# cd /etc/httpd/conf.d/
安裝以後會產生ssl.conf文件
編輯ssl.conf,指明自己創建證書文件和私鑰文件
重新啟動服務
Service httpd restart
測試結果:
然後編輯/etc/httpd/conf.d/ssl.conf文件
打開證書鏈
再次重新啟動httpd服務
為了安全,關閉明文端口,禁止使用http訪問該站點
再次進行訪問
試驗完成。
本文出自 “學海無涯” 博客,請務必保留此出處http://zhangc.blog.51cto.com/5627676/970164