CA和SSL證書介紹


一、什么是CA?

        CA是證書的簽發機構,它是公鑰基礎設施(Public Key Infrastructure,PKI)的核心。CA是負責簽發證書、認證證書、管理已頒發證書的機關。CA 擁有一個證書(內含公鑰和私鑰)。網上的公眾用戶通過驗證 CA 的簽字從而信任 CA ,任何人都可以得到 CA 的證書(含公鑰),用以驗證它所簽發的證書。如果用戶想得到一份屬於自己的證書,他應先向 CA 提出申請。在 CA 判明申請者的身份后,便為他分配一個公鑰,並且 CA 將該公鑰與申請者的身份信息綁在一起,並為之簽字后,便形成證書發給申請者。

 

二、什么是SSL證書?

        SSL 證書,也稱為服務器 SSL 證書,是遵守 SSL 協議的一種數字證書,由全球信任的證書頒發機構(CA)驗證服務器身份后頒發。將 SSL 證書安裝在網站服務器上,可實現網站身份驗證和數據加密傳輸雙重功能。SSL 協議及其繼任者 TLS 協議,是一種實現網絡通信加密的安全協議,可在客戶端(瀏覽器)和服務器端(網站)之間建立一條加密通道,保證數據在傳輸過程中不被竊取或篡改。
        這個證書總共有 3 個測評等級,其中,EV SSL 證書最高,OV SSL 證書其次,而 DV SSL 證書最弱。DV SSL 證書只驗證域名所有權,僅為加密傳輸信息的作用,並不能證明網站的真實身份;OV SSL 證書是需要驗證網站所有單位的真實身份的標准型 SSL 證書,而 EV SSL 證書則是遵循全球統一嚴格身份驗證標准辦法的 SSL 證書,是目前業界最高安全級別的 SSL 證書。其中,OV SSL 主要在國內網站應用,而 EV SSL 則在國外網站應用更多。靠譜的商用網站一般都會部署 EV SSL 證書或 OV SSL 證書,絕對不會部署已經被欺詐網站濫用的 DV SSL 證書。

 

三、SSL證書分類和文件種類?

        證書的分類:

  • CA證書,也就是根證書。如果不安全該證書,即使安裝了其他證書,瀏覽器也會提示不安全,但是在單向https認證中,該證書的安裝是可選的。
  • 服務器證書。SSL證書中必須要安裝的證書之一,通過證書的key生成csr文件,然后再通過CA證書簽名,生成服務器的證書
  • 客戶端證書。在雙向https驗證中,就必須有客戶端證書,生成方式同服務器證書一樣,單向證書則不用生成。

 

        證書格式:

  1. CER:服務器證書、CA根證書鏈。CRT證書的微軟型式,可以在微軟系統環境下將.crt轉換為.cer(.both DER編碼的.cer,或base64 [PEM]編碼的.cer)。
  2. KEY:私鑰。KEY擴展名用於私鑰。 鍵可以被編碼為二進制DER或ASCII PEM。
  3. CRT:中間證書、證書文件。可以是二進制格式,可以是文本格式,與 .DER 格式相同,不保存私鑰常用於 Apache,Nginx 等。CRT擴展用於證書。 證書可以被編碼為二進制DER或ASCII PEM。 CER和CRT擴展幾乎是同義詞。 最常見的於Unix 或類Unix系統。
  4. CSR:證書簽名請求認證請求由三個主要部分組成:認證請求信息、簽名算法標識符和認證請求信息上的數字簽名。第一部分包含重要信息,包括公鑰。請求者的簽名防止實體請求他人公鑰的偽造證書。因此,生成CSR需要私鑰,但私鑰不是CSR的一部分。
  5. PEM:一般是文本格式,可保存證書,可保存私鑰
  6. DER .CER:文件是二進制格式,只保存證書,不保存私鑰
  7. PFX .P12:二進制格式,同時包含證書和私鑰,一般有密碼保護
  8. JKS:二進制格式,同時包含證書和私鑰,一般有密碼保護。常用於 Weblogic,Tomcat,Jboss。
  9. PFK:常用於 IIS 等。
  10. KDB:常用於 IHS,Webspphere。

 

四、SSL和TSL

        SSL:(Secure Socket Layer,安全套接字層),位於可靠的面向連接的網絡層協議和應用層協議之間的一種協議層。SSL通過互相認證、使用數字簽名確保完整性、使用加密確保私密性,以實現客戶端和服務器之間的安全通訊。該協議由兩層組成:SSL記錄協議和SSL握手協議。

 

        TSL:(Transport Layer Security,傳輸層安全協議),用於兩個應用程序之間提供保密性和數據完整性。該協議由兩層組成:TLS記錄協議和TLS握手協議。TLS(傳輸層安全)是更為安全的升級版 SSL。由於 SSL 這一術語更為常用,因此我們仍然將我們的安全證書稱作 SSL。

 

        SSL認證: 目前SSL證書認證分為單向認證域雙向認證,單向認證只要求站點部署了ssl證書,任何用戶都可以去訪問(IP被限制除外等),只是服務端提供了身份認證。而雙向認證則是需要是服務端需要客戶端提供身份認證,只能是服務端允許的客戶能去訪問,安全性相對於要高一些。一般Web應用都是采用單向認證的,因為用戶數目廣泛,且無需做在通訊層做用戶身份驗證,一般都在應用邏輯層來保證用戶的合法登入。但如果是企業應用對接,情況就不一樣,可能會要求對客戶端做身份驗證。這時就需要做雙向認證。

 

        數字簽名: 用自己的私鑰給數據加密就叫數字簽名。數字簽名(Digital Signature)(又稱公鑰數字簽名、電子簽章)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑒別數字信息的方法。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。數字簽名有兩個作用:

  • 能確定消息確實是由發送方簽名並發出來的。
  • 數字簽名能確定數據電文內容是否被篡改,保證消息的完整性。

 

五、其他

        PSK:PSK是預共享密鑰,是用於驗證 L2TP/IPSec 連接的 Unicode 字符串。可以配置“路由和遠程訪問”來驗證支持預共享密鑰的 VPN 連接。預共享密鑰模式(pre-shared key (PSK),又稱為"-Personal",即“-個人模式”)是針對承擔不起802.1X認證服務器的成本和復雜度的家庭或小型公司網絡設計和使用的,每一個用戶必須輸入預先配置好的相同的密鑰來接入網絡,而密鑰可以是8到63個ASCII字符、或是64個16進制數字(256比特)。用戶可以自行斟酌要不要把密鑰存在計算機里以省去重復鍵入的麻煩,但密鑰一定要預先配置在Wi-Fi路由器里。使用 PSK 時,AP 和客戶端必須配置相同的密鑰或加密密碼。AP 發送一個隨機字符串到客戶端。客戶端接受該字符串,根據密鑰對其進行加密(或編碼),然后發送回 AP。AP 獲取加密的字符串,並使用其密鑰解密(或解碼)。如果從客戶收到的字符串在解密后與原來發送給客戶端的字符串匹配,就允許該客戶端連接。

 

        nginx配置:

  • ssl_certificate證書其實是個公鑰,它會被發送到連接服務器的每個客戶端
  • ssl_certificate_key私鑰是用來解密的,所以它的權限要得到保護但nginx的主進程能夠讀取。當然私鑰和證書可以放在一個證書文件中,這種方式也只有公鑰證書才發送到client。
  • ssl_session_timeout 客戶端可以重用會話緩存中ssl參數的過期時間,內網系統默認5分鍾太短了,可以設成30m即30分鍾甚至4h。
  • ssl_protocols指令用於啟動特定的加密協議,nginx在1.1.13和1.0.12版本后默認是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,TLSv1.1與TLSv1.2要確保OpenSSL >= 1.0.1 ,SSLv3 現在還有很多地方在用但有不少被攻擊的漏洞。
  • ssl_ciphers選擇加密套件,不同的瀏覽器所支持的套件(和順序)可能會不同。這里指定的是OpenSSL庫能夠識別的寫法,你可以通過 openssl -v cipher ‘RC4:HIGH:!aNULL:!MD5’(后面是你所指定的套件加密算法) 來看所支持算法。
  • ssl_prefer_server_ciphers on設置協商加密算法時,優先使用我們服務端的加密套件,而不是客戶端瀏覽器的加密套件。

 

 文章來源: 物美智能設備


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM