什麼是WEB伺服器
Web伺服器是指駐留于網際網路上某種類型計算機的程式。當Web浏覽器(用戶端)連到伺服器上并請求檔案時,伺服器将處理該請求并将檔案發送到該浏覽器上,附帶的資訊會告訴浏覽器如何檢視該檔案(即檔案類型)。伺服器使用HTTP(超文本傳輸協定)進行資訊交流,這就是人們常把它們稱為HTTPD伺服器的原因。 Web伺服器不僅能夠存儲資訊,還能在使用者通過Web浏覽器提供的資訊的基礎上運作腳本和程式。Web伺服器是支援http,ftp gopher等協定的統稱為web伺服器 ,狹隘的可以了解為支援http協定的為web伺服器
http版本:
http有兩個版本 1.0和1.1
版本1.1比1.0多了持久連接配接(keepalive)功能 版本1.1可以讓你一次通路 但是可以得到n多對象 不需要沒請求一次對象就去請求對象
http與https :
http不安全,利用的是明文顯示
https安全利用的密文加密傳輸 主要是https在應用層與傳輸層之間加了一個ssl安全套接層,當客戶機通路web伺服器是,資料包到達傳輸層之前,先交給ssl安全套接層進行加密,然後再交給傳輸層傳輸,到達伺服器後 先将資料包交給ssl安全套接層解密然後傳輸給應用層。是以資料包在傳輸的過程中都處于加密狀态
web伺服器的實作
主要是
1 apache
2 nginx
3 lighttpd
https 實作加密的過程
1 客戶機通路web伺服器
2 web伺服器出示自己的證書,證書包括web伺服器的公鑰,辨別以及簽名機關和簽名
3 客戶機利用證書上的公鑰加密随即産生的k值
4 傳到伺服器後,伺服器利用自己的私鑰打開取出k值
5 利用k值解開資料包
Linux平台的web伺服器可以做到三種安全控制
1 身份驗證
2 來源控制
3 https加密通路
案例:
我們利用linux +apache 實作https加密通路
需求:
實作https需要ca 、web伺服器以及web用戶端 Ca是證書頒發機構 Linux有openca 開源的ca(開源的證書頒發機構)
實作過程
web伺服器向ca請求頒發證書,若ca給予其頒發,則ca與伺服器綁定。當web客戶機通路web伺服器時,web伺服器出示證書
步驟
1 建立一個ca
2 web伺服器向ca請求證書
3 http與ssl通過子產品mod_ssl綁定結合
4客戶機通路web伺服器
一 建立一個ca(證書頒發機構)
安裝httpd服務
啟動httpd
[root@localhost Server]# service httpd start
[root@localhost Server]# cd /etc/pki
編輯檔案[root@localhost pki]# vim tls/openssl.cnf
将match改為optional::
:88,90 s/match/optional
目的是為不同地區的人發證書
避免自己在安裝證書時填寫自己的國家地區 是以将改為預設值
必須要有43-57之間的三個目錄和兩個檔案
必須有三個目錄以及兩個檔案
三個目錄/certs /crl /newcerts
兩個檔案 index。Txt serial
1 建立三個目錄以及檔案
[root@localhost CA]# touch index.txt serial
[root@localhost CA]# mkdir certs crl newcerts
2 [root@localhost CA]# echo "01" >serial 給予serial第一份證書的序号為01
3 産生鑰匙[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem
Genssl:gen是産生 rsa是非對稱加密算法
1024 是加密的長度
4 改權限 将鑰匙檔案的權限改我600 [root@localhost CA]# chmod 600 private/*
5 通過鑰匙産生證書 [root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650
Ca建立完成
二 下邊做自己的web伺服器
要求自己是web伺服器 1 有自己的私鑰 2 利用自己的私鑰向ca請求證書 3 申請證書
1做自己的私鑰
建立自己的私鑰位置檔案,表明私鑰放在什麼位置
[root@localhost ~]# mkdir -pv /etc/httpd/certs
[root@localhost ~]# cd /etc/httpd/certs
[root@localhost certs]# openssl genrsa 1024 >http.key
2 産生自己請求證書的請求檔案
[root@localhost certs]# openssl req -new -key http.key -out http.csr
3 利用請求去向ca請求證書
[root@localhost certs]# openssl ca -in http.csr -out http.cert
4 修改目錄的權限
[root@localhost certs]# chmod 600 *
Web伺服器做成
三 然後讓http與ssl結合
兩者之間的結合靠子產品mod_ssl結合起來
1 查詢mod_ssl子產品是否安裝
[root@localhost Server]# yum install mod_ssl
利用yum保證自己的yum腳本配置正确
2 編輯mod_ssl的配上檔案
裝過ssl之後 在[root@localhost Server]# cd /etc/httpd/conf.d/會有一個ssl.conf
Conf.d裡邊裝一些httpd額外的功能子產品
重新啟動httpd
[root@localhost conf.d]# vim ssl.conf
四 測試
找一台機器當web客戶機
利用加密的https通路
确定後顯示證書
解決這兩個問題
1 不信任頒發證書的機構
隻需安裝機構的證書就信任頒發機構(ca)
然後檢視證書
将根ca顯示出來 形成證書鍊
然後重新啟動
[root@localhost conf.d]# service httpd restart
d
點選檢視并安裝證書
然後重新登陸通路網頁
解決2 證書上提供的名字www.langzi.com與通路的192.168.88.128不符
解決方案有兩種
1 dns伺服器
2 修改本客戶機的hosts檔案
下邊我們隻修改本機的hosts檔案來完成 dns慢慢與你分享
在我們電腦的
C:\WINDOWS\system32\drivers\etc
以記事本的方式打開并編輯
然後再重新通路web伺服器
沒有警告
成功解決