自簽名ssl證書不安全,並且不被瀏覽器識別。如果是壹般的ssl證書,那麽確認頒發機構是否可信,即其根證書是否植根於瀏覽器。可信機構有GlobalSign、Comodo、Go Daddy、國外的Digicert和中國的GDCA。
Https原理:證書傳輸、驗證和數據加解密過程分析;
1.客戶端發起HTTPS請求。
用戶在瀏覽器中輸入https URL,然後連接到服務器的端口443。
2.服務器的配置
使用HTTPS協議的服務器必須有壹套數字證書,可以自己制作,也可以向組織申請。不同的是,自己頒發的證書需要客戶端驗證後才能繼續訪問,而可信公司申請的證書不會彈出提示頁面(startssl是個不錯的選擇,1年免費服務)。這組證書實際上是壹對公鑰和私鑰。
3.發送證書
這個證書其實是壹個公鑰,但是包含了很多信息,比如證書的頒發機構,過期時間等等。
4.客戶端解析證書
這部分工作由客戶端的TLS完成。首先,它將驗證公鑰是否有效,如頒發機構、過期時間等。如果發現異常,會彈出壹個警告框,提示證書有問題。
如果證書沒有問題,則生成壹個隨機值。然後用證書對隨機值進行加密。如上所述,用鎖頭鎖定隨機值,這樣除非有鑰匙,否則看不到鎖定的內容。
5.傳輸加密信息
這部分傳輸的是用證書加密的隨機值,這樣服務器就可以得到這個隨機值,以後客戶端和服務器之間的通信就可以通過這個隨機值進行加密和解密。
6.服務器解密信息
服務器用私鑰解密後,得到客戶端發送的隨機值(私鑰),然後通過這個值對內容進行對稱加密。所謂對稱加密就是通過某種算法把信息和私鑰混合在壹起,這樣除非私鑰已知。
否則無法獲取內容,但是客戶端和服務器都知道這個私鑰,所以只要加密算法足夠堅韌,私鑰足夠復雜,數據就足夠安全。
7、加密信息的傳輸
這部分信息由服務器用私鑰加密,可以在客戶端恢復。
8.客戶端解密信息。
客戶端用之前生成的私鑰對服務器發送的信息進行解密,從而獲得解密後的內容。即使第三方全程監控數據,也是無可奈何。