自簽名證書和CA證書的區別


概念介紹

1)傳輸協議

HTTP(超文本傳輸)協議訪問互聯網上的數據是沒有經過加密的。也就是說,任何人都可以通過適當的工具攔截或者監聽到在網絡上傳輸的數據流。但是有時候,我們需要在網絡上傳輸一些安全性或者私秘性的數據,譬如:包含信用卡及商品信息的電子訂單。這個時候,如果仍然使用HTTP協議,勢必會面臨非常大的風險!相信沒有人能接受自己的信用卡號在互聯網上裸奔。
HTTPS(超文本傳輸安全)協議無疑可以有效的解決這一問題。所謂HTTPS,其實就是HTTP和SSL/TLS的組合,用以提供加密通訊及對網絡服務器的身份鑒定。HTTPS的主要思想是在不安全的網絡上創建一安全信道,防止黑客的竊聽和攻擊。
SSL(安全套接層)可以用來對Web服務器和客戶端之間的數據流進行加密。
SSL利用非對稱密碼技術進行數據加密。加密過程中使用到兩個秘鑰:一個公鑰和一個與之對應的私鑰。使用公鑰加密的數據,只能用與之對應的私鑰解密;而使用私鑰加密的數據,也只能用與之對應的公鑰解密。因此,如果在網絡上傳輸的消息或數據流是被服務器的私鑰加密的,則只能使用與其對應的公鑰解密,從而可以保證客戶端與與服務器之間的數據安全。

2)數字證書

所謂數字證書,是一種用於電腦的身份識別機制。由數字證書頒發機構(CA)對使用私鑰創建的簽名請求文件做的簽名(蓋章),表示CA結構對證書持有者的認可。數字證書擁有以下幾個優點:
使用數字證書能夠提高用戶的可信度
數字證書中的公鑰,能夠與服務端的私鑰配對使用,實現數據傳輸過程中的加密和解密
在證認使用者身份期間,使用者的敏感個人數據並不會被傳輸至證書持有者的網絡系統上
X.509證書包含三個文件:key,csr,crt。

key是服務器上的私鑰文件,用於對發送給客戶端數據的加密,以及對從客戶端接收到數據的解密
csr是證書簽名請求文件,用於提交給證書頒發機構(CA)對證書簽名
crt是由證書頒發機構(CA)簽名后的證書,或者是開發者自簽名的證書,包含證書持有人的信息,持有人的公鑰,以及簽署者的簽名等信息
備注:在密碼學中,X.509是一個標准,規范了公開秘鑰認證、證書吊銷列表、授權憑證、憑證路徑驗證算法等。

3)自簽證書的區別

自簽名私有證書VS私又CA自簽名證書

自簽名證書分為自簽名私有證書和自簽名CA證書兩種,區別是私有證書無法被吊銷,自簽的CA證書可以被吊銷。能不能吊銷證書的區別我理解是CA證書有一套證書吊銷機制,可以決定什么情況吊銷證書,而私有證書沒有這種安全機制(數據完整性,過期時間之類的吧),對於被劫持的風險更高(參考資料)(使用自簽的系統有幾個是重要的,況且即便是自簽的證書也會被瀏覽器提示未認證的簽名機構,不過有的瀏覽器可能對於私有證書這種認證會直接拒絕連提示的機會都不給)
再一個區別就是需要創建多個客戶端證書的時候,推薦使用CA證書,因為只要給所有的客戶端(有待推敲)都安裝了 CA 根證書,那么以該 CA 根證書簽名過的客戶端證書都是信任的,不需要重復的安裝客戶端證書。

申請權威機構的CA證書VS自簽名CA證書

1、權威CA機構申請的證書要花銀子,自簽證書不要銀子
2、自簽證書會出現google瀏覽器不認的情況,比較麻煩。漏洞也多,對安全不利。
3、使用機構簽發的證書時候需要聯網簽發,內網機器不用想

所以公網服務踏實的買證書,內網機器踏實的自簽證書。

4)證書類型

x509的證書編碼格式有兩種
1.PEM(Privacy-enhanced Electronic Mail) 是明文格式的 以 -----BEGIN CERTIFICATE-----開頭,已-----END CERTIFICATE-----結尾,中間是經過base64編碼的內容,apache需要的證書就是這類編碼的證書 查看這類證書的信息的命令為 :openssl x509 -noout -text -in server.pem
其實PEM就是把DER的內容進行了一次base64編碼
2.DER 是二進制格式的證書 查看這類證書的信息的命令為 :openssl x509 -noout -text -inform der -in server.der

擴展名:
.crt 證書文件 ,可以是DER(二進制)編碼的,也可以是PEM( ASCII (Base64) )編碼的 ,在類unix系統中比較常見
.cer 也是證書 常見於Windows系統 編碼類型同樣可以是DER或者PEM的,windows 下有工具可以轉換crt到cer
.csr 證書簽名請求 一般是生成請求以后發送給CA,然后CA會給你簽名並發回證書
.key 一般公鑰或者密鑰都會用這種擴展名,可以是DER編碼的或者是PEM編碼的 查看DER編碼的(公鑰或者密鑰)的文件的命令為 openssl rsa -inform DER -noout -text -in xxx.key 查看PEM編碼的(公鑰或者密鑰)的文件的命令為 openssl rsa -inform PEM -noout -text -in xxx.key
.p12 證書 包含一個X509證書和一個被密碼保護的私鑰


免責聲明!

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



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