我們先來了解一下什么理HTTPS
- HTTPS概念
1)簡介
HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer)沐扳,是以安全為目標的HTTP通道,簡單講是HTTP的安全版默垄。即HTTP下加入SSL層千扔,HTTPS的安全基礎是SSL憎妙,因此[加密]的詳細內(nèi)容就需要SSL。
2)HTTPS和HTTP的區(qū)別
a. https協(xié)議需要到ca申請證書曲楚,一般免費證書很少厘唾,需要交費。
b. http是超文本傳輸協(xié)議龙誊,信息是明文傳輸抚垃;https 則是具有安全性的ssl加密傳輸協(xié)議。
c. http和https使用的是完全不同的連接方式载迄,用的端口也不一樣讯柔,前者是80,后者是443护昧。
d. http的連接很簡單魂迄,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸惋耙、身份認證的網(wǎng)絡協(xié)議捣炬,比http協(xié)議安全熊昌。
3)HTTPS的作用
它的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩幔涣硪环N就是確認網(wǎng)站的真實性婿屹。
a. 一般意義上的https,就是服務器有一個證書推溃。主要目的是保證服務器就是他聲稱的服務器昂利,這個跟第一點一樣;服務端和客戶端之間的所有通訊铁坎,都是加密的蜂奸。
b. 具體講,是客戶端產(chǎn)生一個對稱的密鑰硬萍,通過服務器的證書來交換密鑰扩所,即一般意義上的握手過程。
c. 接下來所有的信息往來就都是加密的朴乖。第三方即使截獲祖屏,也沒有任何意義,因為他沒有密鑰买羞,當然篡改也就沒有什么意義了袁勺。
d.少許對客戶端有要求的情況下,會要求客戶端也必須有一個證書哩都。
這里客戶端證書魁兼,其實就類似表示個人信息的時候,除了用戶名/密碼漠嵌,還有一個CA 認證過的身份咐汞。因為個人證書一般來說是別人無法模擬的,所有這樣能夠更深的確認自己的身份儒鹿。目前少數(shù)個人銀行的專業(yè)版是這種做法化撕,具體證書可能是拿U盤(即U盾)作為一個備份的載體。
2.SSL簡介
1)簡介
SSL (Secure Socket Layer)為Netscape所研發(fā)约炎,用以保障在Internet上數(shù)據(jù)傳輸之安全植阴,利用數(shù)據(jù)加密(Encryption)技術,可確保數(shù)據(jù)在網(wǎng)絡上之傳輸過程中不會被截取及竊聽圾浅。它已被廣泛地用于Web[瀏覽器]與服務器之間的身份認證和加密數(shù)據(jù)傳輸掠手。SSL協(xié)議位于TCP/IP協(xié)議與各種應用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持狸捕。
2)SSL提供的服務
a.認證用戶和服務器喷鸽,確保數(shù)據(jù)發(fā)送到正確的客戶機和服務器
b.加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊取
c.維護數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變灸拍。
3) SSL協(xié)議的握手過程
SSL 協(xié)議既用到了公鑰加密技術又用到了對稱加密技術做祝,對稱加密技術雖然比公鑰加密技術的速度快砾省,可是公鑰加密技術提供了更好的身份認證技術。SSL 的握手協(xié)議非常有效的讓客戶和服務器之間完成相互之間的身份認證混槐,其主要過程如下:
”嘈帧①客戶端的瀏覽器向服務器傳送客戶端SSL 協(xié)議的版本號,加密算法的種類声登,產(chǎn)生的隨機數(shù)狠鸳,以及其他服務器和客戶端之間通訊所需要的各種信息。
“乒巍②服務器向客戶端傳送SSL 協(xié)議的版本號碰煌,加密算法的種類舒岸,隨機數(shù)以及其他相關信息绅作,同時服務器還將向客戶端傳送自己的證書。
《昱伞③客戶利用服務器傳過來的信息驗證服務器的合法性俄认,服務器的合法性包括:證書是否過期,發(fā)行服務器證書的CA 是否可靠洪乍,發(fā)行者證書的公鑰能否正確解開服務器證書的“發(fā)行者的數(shù)字簽名”眯杏,服務器證書上的域名是否和服務器的實際域名相匹配。如果合法性驗證沒有通過壳澳,通訊將斷開岂贩;如果合法性驗證通過,將繼續(xù)進行第四步巷波。
∥颉④用戶端隨機產(chǎn)生一個用于后面通訊的“對稱密碼”,然后用服務器的公鑰(服務器的公鑰從步驟②中的服務器的證書中獲得)對其加密抹镊,然后傳給服務器锉屈。
⑤服務器用私鑰解密“對稱密碼”(此處的公鑰和私鑰是相互關聯(lián)的垮耳,公鑰加密的數(shù)據(jù)只能用私鑰解密颈渊,私鑰只在服務器端保留。然后用其作為服務器和客戶端的“通話密碼”加解密通訊终佛。同時在SSL 通訊過程中還要完成數(shù)據(jù)通訊的完整性俊嗽,防止數(shù)據(jù)通訊中的任何變化。
×逭谩⑥客戶端向服務器端發(fā)出信息绍豁,指明后面的數(shù)據(jù)通訊將使用的步驟⑤中的主密碼為對稱密鑰,同時通知服務器客戶端的握手過程結(jié)束豌研。
∶锰铩⑦服務器向客戶端發(fā)出信息唬党,指明后面的數(shù)據(jù)通訊將使用的步驟⑤中的主密碼為對稱密鑰,同時通知客戶端服務器端的握手過程結(jié)束鬼佣。
∈还啊⑧SSL 的握手部分結(jié)束,SSL 安全通道的數(shù)據(jù)通訊開始晶衷,客戶和服務器開始使用相同的對稱密鑰進行數(shù)據(jù)通訊蓝纲,同時進行通訊完整性的檢驗。
3.配置服務器端證書