全部證書有多種文件編碼格式,主要包括:算法
CER編碼(規範編碼格式):是BER(基本編碼格式)的一個變種,比BER規定得更嚴格
DER編碼(卓越編碼格式):是BER(基本編碼格式)的一個變種, 比BER規定得更嚴格安全
*CER的不一樣在於,DER使用定長模式,而CER使用變長模式。服務器
全部證書都符合公鑰基礎設施(PKI)制定的ITU-T X509國際標準,PKCS(公鑰加密標準)由RSA實驗室和其餘安全系統開發商爲促進公鑰密碼的發展而制定的一系列標準網絡
好比:socket
PKCS#7(密碼消息語法標準----文件後綴名:.p7b、.p7c、.spc)工具
PKCS#10(證書請求語法標準----文件後綴名:.p十、.csr)編碼
PKCS#12(我的信息交換語法標準----文件後綴名:.p十二、.pfx)等加密
在得到數字證書後,能夠將其保存在電腦中,也能夠保存在USB Key等相應的設備中。spa
簡單的證書機構簽發的流程:開放源代碼
數字證書的應用環境是在https安全協議中,使用流程遠比上述加密交互流程複雜
可是相關操做封裝在傳輸層,對於應用層透明,在https安全協議中使用非對稱加密算法交換密鑰,使用對稱加密算法對數據進行加密/解密操做,提升加密/解密效率
數字證書管理工具:KeyTool和OpenSSL構建CSR(數字證書籤發申請),交由CA機構簽發,造成最終的數字證書
這裏咱們不對KeyTool作講解(KeyTool不含有根證書,所以KeyTool沒有辦法做爲CA),網上資料對keytool講解的也挺多的,咱們下面針對OpenSSL進行講解。
在咱們搭建OPEN SSL環境前,咱們要知道HTTPS協議和SSL/TLS協議,簡單的說,HTTPS就是HTTP+SSL(secure socket layer)/TLS(Transport Layer Security)協議,HTTPS協議爲數字證書提供了最佳的應用環境,HTTPS協議通常在服務器中配置,如HTTP服務器APACHE、TOMCAT等。
SSL:位於TCP/IP中的網絡傳輸層,做爲網絡通信提供安全以及數據完整性的一種安全協議
TLS:做爲SSL協議的繼承者,成爲下一代網絡安全性和數據完整性安全協議
SSL共有3個版本:1.0、2.0、3.0,TLS也有1.0、2.0、3.0,一般咱們說的SSL/TLS協議指的是SSL3.0/TLS1.0的網絡傳輸層安全協議
SSL/TLS協議分爲兩層:
記錄協議:建議在可靠的傳輸協議之上,爲高層協議提供數據封裝、壓縮、加密等基本功能的支持
握手協議:創建在SSL記錄協議之上,用於在實際的數據傳輸開始前,通信雙方進行身份認證、協商加密算法、交換加密密鑰等
協商算法 驗證算法 客戶端驗證服務器端證書 服務器端驗證客戶端證書: 產生密鑰
會話密鑰 加密交互
OPEN SSL 環境搭建
基礎原理中咱們提到了兩種認證服務,單項認證服務和雙向認證服務,咱們就以雙向認證服務舉例說明。
OpenSSL是一個開放源代碼軟件包,實現了SSL以及相關加密技術,是最經常使用的證書管理工具,OpenSSL功能遠勝於KeyTool,可用於根證書(KeyTool不含有,所以KeyTool沒有辦法做爲CA)、服務器證書、客戶證書的管理。