CA(Certificate Authority)
CA是一個(gè)第三方認(rèn)證機(jī)構(gòu),CA的作用是檢查證書(shū)持有者身份的合法性铝耻,并簽發(fā)證書(shū)(在證書(shū)上簽字)誊爹,以防證書(shū)被偽造或篡改,以及對(duì)證書(shū)和密鑰進(jìn)行管理瓢捉。
- 一般以證書(shū)的形式發(fā)布CA的公鑰频丘。CA給自己簽發(fā)一張證書(shū),證明自己擁有這個(gè)公鑰泡态,這就是
自簽名證書(shū)
(Self-Signed Certificate)搂漠,也可以稱呼根證書(shū) - CA自簽名證書(shū)必須從
可信的途徑
下載獲取, 可以通過(guò)公開(kāi)權(quán)威的媒介獲得 - 安裝根證書(shū)意味著對(duì)這個(gè)CA認(rèn)證中心的信任某弦, 是
信任鏈的起始點(diǎn)
數(shù)字證書(shū)
從技術(shù)上講桐汤,證書(shū)其實(shí)包含四部分,用戶的公鑰靶壮,用戶的信息怔毛,CA的名稱,還有CA中心對(duì)該證書(shū)里面的信息簽名腾降。
- 驗(yàn)證證書(shū)上的數(shù)字簽名拣度,可以確定這份證書(shū)的真?zhèn)危褪?code>認(rèn)證用戶的公鑰
- 驗(yàn)證需要用
CA 中心的公鑰
,公鑰可以根據(jù)CA的名稱(LOIS CA)找到
數(shù)字簽名
保證信息傳輸?shù)耐暾钥构l(fā)送者的身份認(rèn)證筋帖,防止交易中的抵賴發(fā)生。
數(shù)字簽名技術(shù)是將
摘要信息
用發(fā)送者的私鑰加密
冤馏,與原文一起傳送給接收者日麸。接收者只有用發(fā)送者的公鑰解密
被加密的摘要信息,然后用HASH函數(shù)對(duì)收到的原文產(chǎn)生一個(gè)摘要信息逮光,與解密的摘要信息對(duì)比代箭。如果相同,則說(shuō)明收到的信息是完整的睦霎,在傳輸過(guò)程中沒(méi)有被修改梢卸,否則說(shuō)明信息被修改過(guò),因此數(shù)字簽名能夠驗(yàn)證信息的完整性副女。-
數(shù)字簽名是個(gè)
加密
的過(guò)程蛤高,數(shù)字簽名驗(yàn)證是個(gè)解密
的過(guò)程
證書(shū)標(biāo)準(zhǔn)
X.509:公鑰證書(shū),只有公鑰碑幅。
PKCS#7: 主要是用于簽名或者加密戴陡。
PKCS#12:含有私鑰,同時(shí)可以有公鑰沟涨,但是有口令保護(hù)恤批。
X.509是常見(jiàn)通用的證書(shū)格式。所有的證書(shū)都符合為Public Key Infrastructure (PKI) 制定的 ITU-T X509 國(guó)際標(biāo)準(zhǔn)裹赴。
PKCS 全稱是 Public-Key Cryptography Standards 喜庞,是由 RSA 實(shí)驗(yàn)室與其它安全系統(tǒng)開(kāi)發(fā)商為促進(jìn)公鑰密碼的發(fā)展而制訂的一系列標(biāo)準(zhǔn)。
PKCS#7 常用的后綴是: .P7B .P7C .SPC
PKCS#12 常用的后綴有: .P12 .PFX
X.509 DER 編碼(ASCII)的后綴是: .DER .CER .CRT
X.509 PEM 編碼(Base64)的后綴是: .PEM .CER .CRT
編碼方式:
-
.pem
后綴的證書(shū)都是以“ -- BEGIN ...”開(kāi)頭棋返, 以“ -- END ...”結(jié)尾延都, 內(nèi)容是base64編碼的 -
.der
, 以此后綴的證書(shū)都是二進(jìn)制格式睛竣,不可讀 -
.crt
晰房, 有可能是.pem
編碼, 也有可能是.der
編碼射沟, 常見(jiàn)于Unix系統(tǒng) -
.cer
殊者, 有可能是.pem
編碼, 也有可能是.der
編碼验夯, 常見(jiàn)于Windows系統(tǒng) -
.key
猖吴, 有可能是.pem
編碼, 也有可能是.der
編碼簿姨, 常用于公鑰和私鑰
查看證書(shū):
- 查看PEM編碼證書(shū)
openssl x509 -in certificate.pem -text -noout
- 查看DER編碼證書(shū)
openssl x509 -in certificate.der -inform der -text -noout
證書(shū)轉(zhuǎn)換:
- PEM > DER
command:openssl x509 -in cert.crt -outform der-out cert.der
- DER > PEM
command:openssl x509 -in cert.crt -inform der -outform pem -out cert.pem