部署https服務器

1.http簡介

     它是由Netscape開發並內置於其瀏覽器中,用於對數據進行壓縮和解壓操作,並返回網絡上傳送回的結果。HTTPS實際上應用了Netscape的安全套接字層(SSL)作爲HTTP應用層的子層。(HTTPS使用端口443,而不是像HTTP那樣使用端口80來和TCP/IP進行通信。)SSL使用40 位關鍵字作爲RC4流加密算法,這對於商業信息的加密是合適的。HTTPS和SSL支持使用X.509數字認證,如果需要的話用戶可以確認發送者是誰。也就是說它的主要作用可以分爲兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。

SSL介紹

       SSL (Secure Socket Layer) 爲Netscape所研發,用以保障在Internet上數據傳輸之安全,利用數據加密(Encryption)技術,可確保數據在網絡上之傳輸過程中不會被截取及竊聽。SSL協議位於TCP/IP協議與各種應用層協議之間,爲數據通訊提供安全支持。SSL協議可分爲兩層:SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,爲高層協議提供數據封裝、壓縮、加密等基本功能的支持。SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用於在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。

SSL協議提供的服務
1)認證用戶和服務器,確保數據發送到正確的客戶機和服務器。

   2)加密數據以防止數據中途被竊取。

   3)維護數據的完整性,確保數據在傳輸過程中不被改變。
SSL協議的工作流程
服務器認證階段

1)客戶端向服務器發送一個開始信息“Hello”以便開始一個新的會話連接。

2)服務器根據客戶的信息確定是否需要生成新的主密鑰,如需要則服務器在響應客戶的“Hello”信息時將包含生成主密鑰所需的信息。

3)客戶根據收到的服務器響應信息,產生一個主密鑰,並用服務器的公開密鑰加密後傳給服務器。

4)服務器恢復該主密鑰,並返回給客戶一個用主密鑰認證的信息,以此讓客戶認證服務器。
用戶認證階段
在此之前,服務器已經通過了客戶認證,這一階段主要完成對客戶的認證。經認證的服務器發送一個提問給客戶,客戶則返回(數字)簽名後的提問和其公開密鑰,從而向服務器提供認證。

      從SSL 協議所提供的服務及其工作流程可以看出,SSL協議運行的基礎是商家對消費者信息保密的承諾,這就有利於商家而不利於消費者。在電子商務初級階段,由於運作電子商務的企業大多是信譽較高的大公司,因此這問題還沒有充分暴露出來。但隨着電子商務的發展,各中小型公司也參與進來,這樣在電子支付過程中的單一認證問題就越來越突出。雖然在SSL3.0中通過數字簽名和數字證書可實現瀏覽器和Web服務器雙方的身份驗證,但是SSL協議仍存在一些問題,比如,只能提供交易中客戶與服務器間的雙方認證,在涉及多方的電子交易中,SSL協議並不能協調各方間的安全傳輸和信任關係。

SSL協議的握手過程

     SSL 協議既用到了公鑰加密技術又用到了對稱加密技術,對稱加密技術雖然比公鑰加密技術的速度快,可是公鑰加密技術提供了更好的身份認證技術。SSL 的握手協議非常有效的讓客戶和服務器之間完成相互之間的身份認證,其主要過程如下:

①客戶端的瀏覽器向服務器傳送客戶端SSL 協議的版本號,加密算法的種類,產生的隨機數,以及其他服務器和客戶端之間通訊所需要的各種信息。

②服務器向客戶端傳送SSL 協議的版本號,加密算法的種類,隨機數以及其他相關信息,同時服務器還將向客戶端傳送自己的證書。

③客戶利用服務器傳過來的信息驗證服務器的合法性,服務器的合法性包括:證書是否過期,發行服務器證書的CA 是否可靠,發行者證書的公鑰能否正確解開服務器證書的“發行者的數字簽名”,服務器證書上的域名是否和服務器的實際域名相匹配。如果合法性驗證沒有通過,通訊將斷開;如果合法性驗證通過,將繼續進行第四步。 ④用戶端隨機產生一個用於後面通訊的“對稱密碼”,然後用服務器的公鑰(服務器的公鑰從步驟②中的服務器的證書中獲得)對其加密,然後將加密後的“預主密碼”傳給服務器。

⑤如果服務器要求客戶的身份認證(在握手過程中爲可選),用戶可以建立一個隨機數然後對其進行數據簽名,將這個含有簽名的隨機數和客戶自己的證書以及加密過的“預主密碼”一起傳給服務器。

⑥如果服務器要求客戶的身份認證,服務器必須檢驗客戶證書和簽名隨機數的合法性,具體的合法性驗證過程包括:客戶的證書使用日期是否有效,爲客戶提供證書的CA 是否可靠,發行CA 的公鑰能否正確解開客戶證書的發行CA 的數字簽名,檢查客戶的證書是否在證書廢止列表(CRL)中。檢驗如果沒有通過,通訊立刻中斷;如果驗證通過,服務器將用自己的私鑰解開加密的“預主密碼”,然後執行一系列步驟來產生主通訊密碼(客戶端也將通過同樣的方法產生相同的主通訊密碼)。

⑦服務器和客戶端用相同的主密碼即“通話密碼”,一個對稱密鑰用於SSL 協議的安全數據通訊的加解密通訊。同時在SSL 通訊過程中還要完成數據通訊的完整性,防止數據通訊中的任何變化。

⑧客戶端向服務器端發出信息,指明後面的數據通訊將使用的步驟⑦中的主密碼爲對稱密鑰,同時通知服務器客戶端的握手過程結束。

⑨服務器向客戶端發出信息,指明後面的數據通訊將使用的步驟⑦中的主密碼爲對稱密鑰,同時通知客戶端服務器端的握手過程結束。

⑩SSL 的握手部分結束,SSL 安全通道的數據通訊開始,客戶和服務器開始使用相同的對稱密鑰進行數據通訊,同時進行通訊完整性的檢驗。

證書各部分的含義

證書版本號,不同版本的證書格式不同。

Serial Number 序列號,同一身份驗證機構簽發的證書序列號唯一 。

Algorithm Identifier 簽名算法,包括必要的參數Issuer 身份驗證機構的標識信息 。

Period of Validity 有效期。

Subject 證書持有人的標識信息。

Subject’s Public Key 證書持有人的公鑰 。

Signature 身份驗證機構對證書的簽名。

 證書的格式 認證中心所發放的證書均遵循X.509 V3 標準,其基本格式如下

證書版本號(Certificate Format Version)用來指定證書格式採用的X.509 版本號。

證書序列號(Certificate Serial Number)用來指定證書的唯一序列號,以標識CA 發出的所有公鑰證書。 簽名(Signature)算法標識(Algorithm Identifier)用來指定 CA 簽發證書所用的簽名算法。

簽發此證書的 CA 名稱(Issuer )用來指定簽發證書的 CA 的X.500 唯一名稱(Distinguished Name)。 證書有效期 用來指定證書起始日期和終止日期。

用戶名稱(Subject)用來指定證書用戶的X.500 唯一名稱(DN,Distinguished Name)。

用戶公鑰信息(Subject Public Key Information)算法(algorithm) 算法標識(Algorithm Identifier)用戶公鑰(subject Public Key用來標識公鑰使用的算法,幷包含公鑰本身。

證書擴充部分(擴展域)(Extensions)用來指定額外信息。

X.509 V3 證書的擴充部分(擴展域)及實現方法如下

CA 的公鑰標識(Authority Key Identifier)

簽發證書者證書的序列號(Certificate Serial Number)

X.509 V3 證書的擴充部分(擴展域)及實現CA 的公鑰標識(Authority Key Identifier)

公鑰標識(SET 未使用)(Key Identifier)

簽發證書者證書的簽發者的甄別名(Certificat簽發證書者證書的序列號(Certificate Serial Number)CA 簽名證書所用的密鑰對的唯一標識用戶的公鑰標識(Subject Key Identifier)用來標識與證書中公鑰相關的特定密鑰進行解密。

證書中的公鑰用途(Key Usage)用來指定公鑰用途。

用戶的私鑰有效期 用來指定用戶簽名私鑰的起始日期和終止日期。

CA 承認的證書政策列表(Certificate Policies)用來指定用戶證書所適用的政策,證書政策可由對象標識符表示。

用戶的代用名(Substitutional Name)用來指定用戶的代用名。

CA 的代用名(Issuer Alt Name)用來指定 CA 的代用名。

基本制約(Basic Constraints)用來表明證書用戶是最終用戶還是CA。

證書類型(Certificate Type)用來區別不同的實體。該項是必選的。

商戶數據(Merchant Data)包含支付網關需要的所有商戶信息。

持卡人證書需求(Card Cert Required)顯示支付網關是否支持與沒有證書的持卡人進行交易。

SET 擴展(SETExtensions)列出支付網關支持的支付命令的 SET 信息擴展。

CRL 數據定義版本(Version)顯示 CRL 的版本號。

CRL 的簽發者(Issuer)指明簽發 CRL 的CA 的甄別名。

CRL 發佈時間(this Update)預計下一個 CRL 更新時間(Next Update)撤銷證書信息目錄(Revoked Certificates)。

2.案例配置

用到的拓撲圖:

20

1)配置CA

安裝httpd服務

[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm

配置ca

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

[root@localhost tls]# vim openssl.cnf

openssl.cnf修改如下

21

 

22

23

在/etc/pki/CA/下創建所需目錄及文件

15

頒發證書的初始序列號爲01

16

創建CA的私鑰

18

創建CA的證書

19

至此CA服務器配置完畢

2)配置web服務器

編輯web首頁

[root@localhost www]# cd /var/www/html

10

創建.htaccess 文件只有指定用戶才能訪問

12

[root@localhost html]# vim .htaccess

authuserfile   /var/www/html/.xht               //用戶名密碼保存文件
authtype      basic                                      // 驗證類型爲基本驗證類型 
authname     " please input password"      // 訪問提示
require       valid-user

創建有效用戶

13 

安裝yum

[root@localhost tls]# vim /etc/yum.repos.d/rhel-debuginfo.repo

1

安裝ssl模塊

7

爲站點產生私鑰,私鑰文件爲httpd.key

19

站點向CA發出證書請求

9

獲取證書

8

編輯ssl.conf文件

[root@localhost html]# cd /etc/httpd/conf.d

5

34

SSLCertificateFile /etc/httpd/certs/httpd.cert           //證書所在位置

SSLCertificateKeyFile /etc/httpd/certs/httpd.key      //私鑰所在位置

編輯httpd.conf文件

TT截圖未命名

對於所有訪問者都要求驗證

5

6

xp

主機上修改hosts

5

 

3)測試

6

 

8

3

4

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章