1、前言

最近工作涉及到https,需要修改nginx的openssl模塊,引入keyless方案。關于keyless可以參考CloudFlare的官方博客:

https://blog.cloudflare.com/keyless-ssl-the-nitty-gritty-technical-details/?utm_source=tuicool&utm_medium=referral。

在openssl的基礎上修改私鑰校驗過程,因此需要對openssl的認證認證流程需要熟悉一下。SSL中涉及到很多概念,開始都不清楚,例如CA,數字簽名、數字證書等,本文主要是總結SSL認證的基礎知識,openssl的單向和雙向認證流程,并寫代碼測試。

2、基礎知識

SSL:Secure Socket Layer,安全套接字層,它位于TCP層與Application層之間。提供對Application數據的加密保護(密文),完整性保護(不被篡改)等安全服務,它缺省工作在TCP 443 端口,一般對HTTP加密,即俗稱的HTTPS。

TLS:Transport Layer Secure,更關注的是提供安全的傳輸服務,它很靈活,如果可能,它可以工作在TCP,也可以UDP (DTLS),也可以工作在數據鏈路層,比如802.1x EAP-TLS。

關于SSL/TSL可以參考:http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

公鑰:大家公用的,可以通過電子郵件發(fā)布,通過網站讓別人下載,公鑰其用來加密和驗章。

私鑰:就是自己的私有的,必須非常小心保存,最好加上 密碼,私鑰是用來解密和簽章。

數字簽名:將報文按雙方約定的HASH算法計算得到一個固定位數的報文摘要。在數學上保證:只要改動報文中任何一位,重新計算出的報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。將該報文摘要值用發(fā)送者的私人密鑰加密,然后連同原報文一起發(fā)送給接收者,而產生的報文即稱數字簽名。關于數字簽名參考:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html 和

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式