天天看點

https加密通路web站點的實作

什麼是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服務

https加密通路web站點的實作

啟動httpd

[root@localhost Server]# service httpd start

[root@localhost Server]# cd /etc/pki

https加密通路web站點的實作

編輯檔案[root@localhost pki]# vim tls/openssl.cnf

https加密通路web站點的實作
https加密通路web站點的實作

将match改為optional::

:88,90 s/match/optional

目的是為不同地區的人發證書

https加密通路web站點的實作

避免自己在安裝證書時填寫自己的國家地區  是以将改為預設值

https加密通路web站點的實作

必須要有43-57之間的三個目錄和兩個檔案

       必須有三個目錄以及兩個檔案

       三個目錄/certs /crl /newcerts

        兩個檔案 index。Txt serial

1 建立三個目錄以及檔案

[root@localhost CA]# touch index.txt serial

[root@localhost CA]# mkdir certs crl newcerts

https加密通路web站點的實作

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

https加密通路web站點的實作

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

https加密通路web站點的實作

2 産生自己請求證書的請求檔案

[root@localhost certs]# openssl req -new -key http.key -out http.csr

https加密通路web站點的實作

3 利用請求去向ca請求證書

[root@localhost certs]# openssl ca -in http.csr -out http.cert

https加密通路web站點的實作

4 修改目錄的權限

[root@localhost certs]# chmod 600 *

https加密通路web站點的實作

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額外的功能子產品

https加密通路web站點的實作

重新啟動httpd

[root@localhost conf.d]# vim ssl.conf

https加密通路web站點的實作

四 測試

找一台機器當web客戶機

https加密通路web站點的實作
https加密通路web站點的實作

利用加密的https通路

https加密通路web站點的實作

确定後顯示證書

https加密通路web站點的實作

解決這兩個問題

1 不信任頒發證書的機構

隻需安裝機構的證書就信任頒發機構(ca)

然後檢視證書

https加密通路web站點的實作

将根ca顯示出來 形成證書鍊

https加密通路web站點的實作

然後重新啟動

[root@localhost conf.d]# service httpd restart

https加密通路web站點的實作

d

點選檢視并安裝證書

https加密通路web站點的實作
https加密通路web站點的實作

然後重新登陸通路網頁

https加密通路web站點的實作

解決2 證書上提供的名字www.langzi.com與通路的192.168.88.128不符

解決方案有兩種

1 dns伺服器

2 修改本客戶機的hosts檔案

下邊我們隻修改本機的hosts檔案來完成 dns慢慢與你分享

在我們電腦的

C:\WINDOWS\system32\drivers\etc

https加密通路web站點的實作

以記事本的方式打開并編輯

https加密通路web站點的實作

然後再重新通路web伺服器

https加密通路web站點的實作

沒有警告

成功解決