https申請證書並部署到網站流程:
1、生成一對秘鑰,設公鑰為pubk1,私鑰為prik1
2、假設發布的網站地址為https://www.example.com
3、生成一個CSR文件(Cerificate Signing Request),該文件內容包括: pubk1,網站地址,以及營業執照等信息,然后將該文件發給CA機構
4、CA機構收到CSR文件后,進行審核,主要檢查網站地址的擁有者是否是證書的申請者
5、審核通過后,CA機構生成一對秘鑰,假設采用ECDSA簽名算法,公鑰為pubk2,私鑰為prik2。用prik2對CSR文件進行簽名得到簽名值sigVal,將sigVal附在CSR文件后面形成證書文件caFile,caFile中還要添加CA機構的信息,如: 簽名算法,CA機構名稱等
6、將證書文件caFile放到網站服務器對應目錄下
====================
====================
瀏覽器驗證證書流程:
1、瀏覽器向服務器發請求https://www.example.com
2、服務器將caFile和pubkey1(實際上就是申請證書流程中生成的一對秘鑰中的公鑰pubk1)發給瀏覽器
3、瀏覽器收到caFile文件進行分析,知道了簽名算法;拿到CA機構名稱后,由於瀏覽器中內置了該CA機構的根證書,所以知道pubk2;還知道caFile文件中的簽名值sigVal以及原文(caFile的一部分,這部分在申請證書流程中稱為CSR文件)知道這四個條件,就可以驗證簽名了,若驗證簽名成功則進入第4步。
4、接下來瀏覽器校驗證書申請者的身份,從caFile中取出pubk1和網站地址w1。如果w1和https://www.example.com一摸一樣,而且pubk1與連接成功后服務器發下來的公鑰pubkey1相等,則說明瀏覽器連接的https://www.example.com沒問題,而且沒有受到中間人攻擊
5、一旦服務器校驗成功,接下來就是進行秘鑰協商,這個協商成功后的秘鑰就是真正用來加密業務數據的秘鑰