ssl協議位於http協議之下,tcp協議之上。主要實現對通訊的資料加密、身份認證、完整性校驗,其中資料加密分為兩個階段:1、用公鑰私鑰實現對稱加密金鑰的交換,2、雙方都通過對稱加密演算法加密通訊資料。
握手過程
為了便於更好的認識和理解ssl 協議,這裡著重介紹ssl 協議的握手協議。ssl 協議既用到了公鑰加密技術又用到了對稱加密技術,對稱加密技術雖然比公鑰加密技術的速度快,可是公鑰加密技術提供了更好的身份認證技術。ssl 的握手協議非常有效的讓客戶和伺服器之間完成相互之間的身份認證,其主要過程如下:
一、客戶端的瀏覽器向伺服器傳送客戶端ssl 協議的版本號,加密演算法的種類,產生的隨機數,以及其他伺服器和客戶端之間通訊所需要的各種資訊。
二、伺服器向客戶端傳送ssl 協議的版本號,加密演算法的種類,隨機數以及其他相關資訊,同時伺服器還將向客戶端傳送自己的證書。
三、客戶利用伺服器傳過來的資訊驗證伺服器的合法性,伺服器的合法性包括:證書是否過期,發行伺服器證書的ca 是否可靠,發行者證書的公鑰能否正確解開伺服器證書的「發行者的數字簽名」,伺服器證書上的網域名稱是否和伺服器的實際網域名稱相匹配。如果合法性驗證沒有通過,通訊將斷開;如果合法性驗證通過,將繼續進行第四步。
四、使用者端隨機產生乙個用於後面通訊的「對稱密碼」,然後用伺服器的公鑰(伺服器的公鑰從步驟②中的伺服器的證書中獲得)對其加密,然後將加密後的「預主密碼」傳給伺服器。
五、如果伺服器要求客戶的身份認證(在握手過程中為可選),使用者可以建立乙個隨機數然後對其進行資料簽名,將這個含有簽名的隨機數和客戶自己的證書以及加密過的「預主密碼」一起傳給伺服器。
六、如果伺服器要求客戶的身份認證,伺服器必須檢驗客戶證書和簽名隨機數的合法性,具體的合法性驗證過程包括:客戶的證書使用日期是否有效,為客戶提供證書的ca 是否可靠,發行ca 的公鑰能否正確解開客戶證書的發行ca 的數字簽名,檢查客戶的證書是否在證書廢止列表(crl)中。檢驗如果沒有通過,通訊立刻中斷;如果驗證通過,伺服器將用自己的私鑰解開加密的「預主密碼」,然後執行一系列步驟來產生主通訊密碼(客戶端也將通過同樣的方法產生相同的主通訊密碼)。
七、伺服器和客戶端用相同的主密碼即「通話密碼」,乙個對稱金鑰用於ssl 協議的安全資料通訊的加解密通訊。同時在ssl 通訊過程中還要完成資料通訊的完整性,防止資料通訊中的任何變化。
八、客戶端向伺服器端發出資訊,指明後面的資料通訊將使用的步驟⑦中的主密碼為對稱金鑰,同時通知伺服器客戶端的握手過程結束。
九、伺服器向客戶端發出資訊,指明後面的資料通訊將使用的步驟⑦中的主密碼為對稱金鑰,同時通知客戶端伺服器端的握手過程結束。
十、ssl 的握手部分結束,ssl 安全通道的資料通訊開始,客戶和伺服器開始使用相同的對稱金鑰進行資料通訊,同時進行通訊完整性的檢驗。
網域名稱檢測工具:
openssl s_client -connect www.example.com:443
證書檢視工具:
openssl x509 -noout -text -in www.example.com.cert
私鑰檢視工具
openssl rsa -noout -text -in www.example.com.key
驗證私鑰檔案和證書檔案是否匹配:
openssl x509 -noout -modulus -in www.example.com.cert | openssl md5
openssl rsa -noout -modulus -in www.example.com.key | openssl md5
https檢測**:
nginx示例配置:
listen 80;
listen 443 ssl;
ssl_certificate conf.d/www.example.com.cn.cert;
ssl_certificate_key conf.d/www.example.com.key;
ssl_protocols tlsv1 tlsv1.1 tlsv1.2;
ssl_ciphers high:!anull:!md5;
ssl_prefer_server_ciphers on;
server_name www.example.com;
https協議 什麼是HTTPS協議?
在我們平常上網的時候我經常接觸的 應該大部分都是 或者我們知道讓他是乙個超文字傳輸協議。那麼https是個什麼?雖然http和這個https兩者只差乙個s,但是本質是大不相同的,他們是兩種不同的網路傳輸協議。千萬不要搞混淆了。http協議通過請求 響應的方式,在客戶端和服務端之間進行通訊。這一切看起...
SSL協議 HTTPS協議
ssl secure socket layer安全套接層 tls transport layer security傳輸層安全,是被標準化的ssl pki 公鑰基礎設施 pki提供電子簽名證書,伺服器購買證書 網路伺服器通過證書被認證,客戶端則不需要認證。tls的三個階段 1.協商金鑰演算法 2.通過...
HTTP協議 HTTPS協議
http協議是基於tcp協議的,當然是要先建立tcp連線了。目前使用的http協議大部分都是1.1.在1.1的協議裡面,預設是開啟了keep alive的,這樣建立的tcp連線,就可以在多次請求中復用。http的報文大概分成三大部分。第一部分是請求行,第二部分是請求的首部,第三部分才是請求的正文實體...