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的區別:
1、https協議須要到ca申請證書,通常免費證書不多,須要交費。
2、http是超文本傳輸協議,信息是明文傳輸,https 則是具備安全性的ssl加密傳輸協議。
3、http和https使用的是徹底不一樣的鏈接方式,用的端口也不同,前者是80,後者是443。
4、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訪問該站點
再次進行訪問
試驗完成。