證書的校驗邏輯:
標準的證書鏈:
網域名稱ca(用於認證www.example.com) **ca(作為網域名稱的授信機構,中間商賺差價,可能有多級) 根ca(證書的簽發機構);
校驗邏輯:
客戶端(瀏覽器)先看網域名稱ca,發現證書本身認證正常,但是授信機構不認識,認證不通過。
於是進一步看**ca,**ca本身也沒毛病,假設仍然不認識,不可信。
再進一步看**的授信方,即根ca,可信;於是校驗通過。
可能存在的場景:
在少數情況下,部分證書廠商會把網域名稱ca和**ca分開提供,或者乾脆不提供**ca;
若僅在雲平台上傳網域名稱ca,那麼該ca中僅僅指出本ca由哪個機構頒發,而如果客戶端不認可此**機構(**商太多,變動大,或者或者部分安卓自帶的ca庫過時或不完整),那麼證書會校驗失敗。(跟自簽名證書效果相同,會導致證書的授信機構不可信)。
解決方案:
以私鑰--->網域名稱ca--->**ca--->根ca為順序合成,根ca可以不要,因為根ca大多都內建到瀏覽器中了,且有效期為10年或20年。合成為.pem檔案然後上傳。
此時,即使客戶端ca不信任網域名稱ca與**ca,也會信任根ca,所以根ca認為此**可信,那麼**ca就可信,進一步**認證的網域名稱也就可信,校驗通過。
ca:ca(certificate authority)是證書的簽發機構,它是負責管理和簽發證書的第三方機構,是受到廣泛信任的機構。一般在我們的電腦中,瀏覽器裡,或者手機裡都會內建一批這樣的受信機構的根證書。
證書信任鏈:
比如我是ca機構我簽發了一封證書 我這份證書是信任b證書的另外b證書又信任了其他的c證書......那麼這條鏈條下去的都可以信任。所以一旦ca機構的根證書不可信了,那麼所有由他簽發出來的證書將全部變得不可信,後果很嚴重。
公鑰密碼體制:
公鑰密碼體制分為三個部分,公鑰、私鑰、加密解密演算法,它的加密解密過程如下:
ca證書:
顧名思義ca證書就是由ca機構簽發的證書。其實證書誰都可以籤,你也可以自己給自己簽發證書,但是由於你自己並不是被廣泛信任的機構,所以你自己簽發的證書並沒有什麼用。公網也不會信任你的證書。伺服器證書包括以下幾種資訊:
證書格式:
.csr 證書請求檔案,用於請求證書,沒有實際的作用。製作.csr檔案
private/.key 證書私鑰,用於解密
*.pfx *.p12 是二進位制格式,同時含證書和私鑰,一般有密碼保護。
*.der *.cer : 這樣的證書檔案是二進位制格式,只含有證書資訊,不包含私鑰。
*.crt : 這樣的檔案可以是二進位制格式,也可以是文字格式,一般均為文字格式,功能與*.der/*.cer相同。
*.pem : 一般是文字格式,可以放證書或私鑰,或者兩者都包含。 *.pem如果只包含私鑰,那一般用 *.key代替。
ssl證書原理
僅做個人備份,瀏覽請看原文 分為單雙向 1.客戶端say hello 服務端 2.服務端將證書 公鑰等發給客戶端 3.客戶端ca驗證證書,成功繼續 不成功彈出選擇頁面 4.客戶端告知服務端所支援的加密演算法 5.服務端選擇最高端別加密演算法明文通知客戶端 6.客戶端生成隨機對稱金鑰key,使用服務端...
SSL證書工作原理
證書主要作用是在ssl握手中,我們來看一下ssl的握手過程 1.客戶端提交https請求 2.伺服器響應客戶,並把證書公鑰發給客戶端 3.客戶端驗證證書公鑰的有效性 4.有效後,會生成乙個會話金鑰 5.用證書公鑰加密這個會話金鑰後,傳送給伺服器 6.伺服器收到公鑰加密的會話金鑰後,用私鑰解密,回去會...
SSL證書的原理
客戶端向伺服器請求https連線 客戶端向伺服器傳送客戶端ssl協議的版本號,加密演算法的種類,產生的隨機數,以及其他伺服器和客戶端之間通訊所需要的各種資訊。伺服器確認並返回證書 伺服器向客戶端傳送ssl 協議的版本號,加密演算法的種類,隨機數以及其他相關資訊,同時伺服器還將向客戶端傳送自己的證書。...