SSL
SSL - Secure Sockets Layer,現(xiàn)在應(yīng)該叫"TLS",但由于習(xí)慣問題,我們還是叫"SSL"比較多.http協(xié)議默認(rèn)情況下是不加密內(nèi)容的,這樣就很可能在內(nèi)容傳播的時(shí)候被別人監(jiān)聽到,對(duì)于安全性要求較高的場合,必須要加密,https就是帶加密的http協(xié)議,而https的加密是基于SSL的,它執(zhí)行的是一個(gè)比較下層的加密,也就是說,在加密前,你的服務(wù)器程序在干嘛,加密后也一樣在干嘛,不用動(dòng),這個(gè)加密對(duì)用戶和開發(fā)者來說都是透明的.
OpenSSL - 簡單地說,OpenSSL是SSL的一個(gè)實(shí)現(xiàn),SSL只是一種規(guī)范.理論上來說,SSL這種規(guī)范是安全的,目前的技術(shù)水平很難破解,但SSL的實(shí)現(xiàn)就可能有些漏洞,如著名的"心臟出血".OpenSSL還提供了一大堆強(qiáng)大的工具軟件,強(qiáng)大到90%我們都用不到.
證書標(biāo)準(zhǔn)
X.509 - 這是一種證書標(biāo)準(zhǔn),主要定義了證書中應(yīng)該包含哪些內(nèi)容.其詳情可以參考RFC5280,SSL使用的就是這種證書標(biāo)準(zhǔn).
編碼格式
同樣的X.509證書,可能有不同的編碼格式,目前有以下兩種編碼格式.
PEM - Privacy Enhanced Mail,打開看文本格式,以"-----BEGIN..."開頭, "-----END..."結(jié)尾,內(nèi)容是BASE64編碼.
查看PEM格式證書的信息:openssl x509 -in certificate.pem -text -noout
Apache和*NIX服務(wù)器偏向于使用這種編碼格式.
DER - Distinguished Encoding Rules,打開看是二進(jìn)制格式,不可讀.
查看DER格式證書的信息:openssl x509 -in certificate.der -inform der -text -noout
Java和Windows服務(wù)器偏向于使用這種編碼格式.
相關(guān)的文件擴(kuò)展名
這是比較誤導(dǎo)人的地方,雖然我們已經(jīng)知道有PEM和DER這兩種編碼格式,但文件擴(kuò)展名并不一定就叫"PEM"或者"DER",常見的擴(kuò)展名除了PEM和DER還有以下這些,它們除了編碼格式可能不同之外,內(nèi)容也有差別,但大多數(shù)都能相互轉(zhuǎn)換編碼格式.
CRT - CRT應(yīng)該是certificate的三個(gè)字母,其實(shí)還是證書的意思,常見于*NIX系統(tǒng),有可能是PEM編碼,也有可能是DER編碼,大多數(shù)應(yīng)該是PEM編碼,相信你已經(jīng)知道怎么辨別.
CER - 還是certificate,還是證書,常見于Windows系統(tǒng),同樣的,可能是PEM編碼,也可能是DER編碼,大多數(shù)應(yīng)該是DER編碼.
KEY - 通常用來存放一個(gè)公鑰或者私鑰,并非X.509證書,編碼同樣的,可能是PEM,也可能是DER.
查看KEY的辦法:openssl rsa -in mykey.key -text -noout
如果是DER格式的話,同理應(yīng)該這樣了:openssl rsa -in mykey.key -text -noout -inform der
CSR - Certificate Signing Request,即證書簽名請(qǐng)求,這個(gè)并不是證書,而是向權(quán)威證書頒發(fā)機(jī)構(gòu)獲得簽名證書的申請(qǐng),其核心內(nèi)容是一個(gè)公鑰(當(dāng)然還附帶了一些別的信息),在生成這個(gè)申請(qǐng)的時(shí)候,同時(shí)也會(huì)生成一個(gè)私鑰,私鑰要自己保管好.做過iOS APP的朋友都應(yīng)該知道是怎么向蘋果申請(qǐng)開發(fā)者證書的吧.
查看的辦法:openssl req -noout -text -in my.csr (如果是DER格式的話照舊加上-inform der,這里不寫了)
證書編碼的轉(zhuǎn)換
PEM轉(zhuǎn)為DER openssl x509 -in cert.crt -outform der -out cert.der
DER轉(zhuǎn)為PEM openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
(提示:上面例子是轉(zhuǎn)換證書文件挨稿,如果要轉(zhuǎn)換KEY文件也類似,只不過把x509換成rsa,要轉(zhuǎn)CSR的話,把x509換成req)
未完待續(xù)
更多內(nèi)容請(qǐng)?jiān)L問下面的源鏈接
- 本文作者: 開發(fā)者首頁
- 本文鏈接: https://blog.kfzsy.com/linux-https-nginx.html
- 版權(quán)聲明: 本博客所有文章除特別聲明外闸溃,均采用 BY-NC-SA 許可協(xié)議。轉(zhuǎn)載請(qǐng)注明出處坯苹!