日本少妇寂寞少妇aaa,国产婷婷色一区二区三区,JK浴室自慰到不停喷水尿失禁,一本一道波多野结衣av黑人

歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
電話圖標(biāo) 余先生:13699882642

網(wǎng)站百科

為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴

各種安全證書間的關(guān)系及相關(guān)操作

發(fā)表日期:2017-07 文章編輯:小燈 瀏覽次數(shù):2743

本文部分摘錄于 SSL Shopper,這里提供了大量有價(jià)值的信息。

一、證書標(biāo)準(zhǔn)

1、X.509
  這是一種證書標(biāo)準(zhǔn),主要定義了證書中應(yīng)該包含哪些內(nèi)容。其詳情可以參考 RFC5280,SSL 使用的就是這種證書標(biāo)準(zhǔn)。

同樣的 X.509 證書,可能有不同的編碼格式。最常見的就是 PEM 和 DER 兩種格式。但是有個(gè)比較誤導(dǎo)人的地方,這兩種格式的文件,擴(kuò)展名不一定就是 .pem.der,還有其他一些常見格式。它們除了編碼格式可能不同之外,內(nèi)容也有差別。但是大多數(shù)都能相互轉(zhuǎn)換編碼格式。

2、作為文件形式存在的證書一般有這幾種格式:

  1. 帶有私鑰的證書(P12)
      由 Public Key Cryptography Standards #12,PKCS#12 標(biāo)準(zhǔn)定義,包含了公鑰私鑰二進(jìn)制格式的證書形式,以 pfx 作為證書文件后綴名。
  2. 二進(jìn)制編碼的證書(DER)
      證書中沒有私鑰,DER 編碼二進(jìn)制格式的證書文件,以 .cer 作為證書文件后綴名。
  3. Base64 編碼的證書(PEM)
      證書中沒有私鑰,Base64 編碼格式的證書文件,也是以 .cer 作為證書文件后綴名。



  由定義可以看出,只有 pfx/p12 格式的數(shù)字證書是包含有私鑰的,cer 格式的數(shù)字證書里面只有公鑰沒有私鑰。

不同的平臺(tái)和設(shè)備,需要不同格式的 SSL 證書。例如:

  • .pfx - Windows 平臺(tái)使用
  • .crt, .cer - Apache Server 使用

注意:區(qū)分 PEM .pemDER .cer 唯一的辦法,就是使用文本編輯器打開,查看 BEGIN/END 聲明。

二、主要格式

1、PEM 格式

PEM(Privacy Enhanced Mail),OpenSSL 使用 PEM 格式來存放各種信息,它是 OpenSSL 默認(rèn)采用的信息存放方式,是 CA(Certificate Authorities)頒發(fā)證書最常用的格式。包含 —–BEGIN CERTIFICATE—–—–END CERTIFICATE-- 聲明。
  多個(gè) PEM 證書甚至于 Private Key 可以被包含到一個(gè)文件中,一個(gè)挨一個(gè)往下排布。但是大多數(shù)平臺(tái)(如:Apache),希望證書和私鑰分別存放到不同的文件中。

文件一般包含如下信息:

  • 內(nèi)容類型:
      表明本文件存放的是什么信息內(nèi)容,它的形式為“——-BEGIN XXXX ——”,與結(jié)尾的“——END XXXX——”對(duì)應(yīng)。

  • 頭信息:
      表明數(shù)據(jù)是如果被處理后存放,OpenSSL 中用的最多的是加密信息,比如加密算法以及初始化向量 iv。

  • 信息體:
      為 BASE64 編碼的數(shù)據(jù)??梢园ㄋ兴借€(RSA 和 DSA)、公鑰(RSA 和 DSA)和 (x509) 證書。它存儲(chǔ)用 Base64 編碼的 DER 格式數(shù)據(jù),用 ascii 報(bào)頭包圍,因此適合系統(tǒng)之間的文本模式傳輸。

PEM 格式文件特點(diǎn):

  • Base64 編碼的 ASCII 文件
  • 具備諸如 .pem, .crt, .cer, .key 這樣的擴(kuò)展名
  • Apache 和類似的服務(wù)器使用 PEM 格式的證書

查看 PEM 格式證書的信息:

$ openssl x509 -in certificate.pem -text -noout 

使用 PEM 格式 存儲(chǔ)的證書

--BEGIN CERTIFICATE-- MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx ...... 1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU= --END CERTIFICATE-- 

使用 PEM 格式存儲(chǔ)的私鑰

--BEGIN RSA PRIVATE KEY-- MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx ……… 1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU= --END RSA PRIVATE KEY-- 

使用 PEM 格式存儲(chǔ)的證書請(qǐng)求文件

--BEGIN CERTIFICATE REQUEST-- MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx ……… 1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU= --END CERTIFICATE REQUEST-- 
2、DER 格式

辨別編碼規(guī)則DER(Distinguished Encoding Rules)是 ASCII PEM 格式證書的二進(jìn)制形式。所有類型的證書和私鑰都可以被編碼為 DER 格式。
  它是大多數(shù)瀏覽器的缺省格式,并按 ASN1 DER 格式存儲(chǔ)。它是無報(bào)頭的。
  PEM 是用文本報(bào)頭包圍的 DER。

  • 二進(jìn)制文件
  • 擴(kuò)展名為 .cer.der
  • DER 被典型地于 Java 平臺(tái)

查看 DER 格式證書的信息:

$ openssl x509 -in certificate.der -inform der -text -noout 
3、P7B/PKCS#7

PKCS7 – 加密消息語法(PKCS7),是各種消息存放的格式標(biāo)準(zhǔn)。這些消息包括:數(shù)據(jù)、簽名數(shù)據(jù)、數(shù)字信封、簽名數(shù)字信封、摘要數(shù)據(jù)和加密數(shù)據(jù)。
包含 --BEGIN PKCS----END PKCS7-- 聲明??梢园C書和證書鏈,但是不包含私鑰。

  • Base64 編碼的 ASCII 文件
  • 擴(kuò)展名為 .p7b, .p7c
  • 多平臺(tái)支持。如:Windows OS、Java Tomcat
4、PFX/PKCS#12

Predecessor of PKCS#12。PKCS12(個(gè)人數(shù)字證書標(biāo)準(zhǔn))用于存放用戶證書、crl、用戶私鑰以及證書鏈。PKCS12 中的私鑰是加密存放的。
  對(duì) Unix 服務(wù)器來說,一般 .crt.key 是分開存放在不同文件中的。但 Windows 的 IIS 則將它們存在一個(gè) .pfx 文件中。因此這個(gè)文件包含了證書及私鑰,這樣會(huì)不會(huì)不安全?應(yīng)該不會(huì), .pfx 通常會(huì)有一個(gè)“提取密碼”,你想把里面的東西讀取出來的話,它就要求你提供提取密碼。.pfx 使用的是 DER 編碼。
  
生成 .pfx 的方法:

$ openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt 

其中 CACert.crt 是 CA 的根證書,有的話也通過 -certfile 參數(shù)一起帶進(jìn)去。
  
PFX/PKCS#12 作用:主要用于存儲(chǔ)服務(wù)器證書,任何中間證書和私鑰存于一個(gè)可加密文件中。

PFX/PKCS#12 特點(diǎn):

  • 二進(jìn)制文件
  • 擴(kuò)展名為 .pfx, .p12
  • 典型用于 Windows OS 導(dǎo)入導(dǎo)出證書和私鑰
5、CSR

Certificate Signing Request,即證書簽名請(qǐng)求。這個(gè)并不是證書,而是向 CA 獲得簽名證書的申請(qǐng)。其核心內(nèi)容是一個(gè)公鑰(當(dāng)然還附帶了一些別的信息),在生成這個(gè)申請(qǐng)的時(shí)候,同時(shí)也會(huì)生成一個(gè)私鑰,私鑰要自己保管好。做過 iOS App 的朋友都應(yīng)該知道是怎么向蘋果申請(qǐng)開發(fā)者證書。
.csr 查看方法:

# 如果是 DER 格式的話照舊加上 -inform der $ openssl req -noout -text -in my.csr 

生成 X509 數(shù)字證書前,一般先由用戶提交證書申請(qǐng)文件,然后由 CA 來簽發(fā)證書。大致過程如下:

  1. 用戶生成自己的公私鑰對(duì)
      構(gòu)造自己的證書申請(qǐng)文件,符合 PKCS#10 標(biāo)準(zhǔn)。該文件主要包括了用戶信息、公鑰以及一些可選的屬性信息,并用自己的私鑰給該內(nèi)容簽名;

  2. 用戶將證書申請(qǐng)文件提交給 CA
      CA 驗(yàn)證簽名,提取用戶信息,并加上其他信息(比如:頒發(fā)者等信息),用 CA 的私鑰簽發(fā)數(shù)字證書;

說明:數(shù)字證書(如x.509)是將用戶(或其他實(shí)體)身份與公鑰綁定的信息載體。一個(gè)合法的數(shù)字證書不僅要符合 X509 格式規(guī)范,還必須有 CA 的簽名。用戶不僅有自己的數(shù)字證書,還必須有對(duì)應(yīng)的私鑰。X509 v3 數(shù)字證書主要包含的內(nèi)容有:證書版本、證書序列號(hào)、簽名算法、頒發(fā)者信息、有效時(shí)間、持有者信息、公鑰信息、頒發(fā)者 ID、持有者 ID 和擴(kuò)展項(xiàng)。

操作舉例

向 CA 申請(qǐng)證書:

$ openssl req -newkey rsa:2048 -new -nodes -keyout my.key -out my.csr 

.csr 交給 CA,CA 對(duì)此進(jìn)行簽名,完成。保留好 .csr,當(dāng)權(quán)威證書頒發(fā)機(jī)構(gòu)頒發(fā)的證書過期的時(shí)候,還可以用同樣的 .csr 來申請(qǐng)新的證書,key 保持不變。

或者生成自簽名的證書:

$ openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem 

在生成證書的過程中會(huì)要你填一堆的東西,其實(shí)真正要填的只有 Common Name。通常填寫你服務(wù)器的域名,如:yourcompany.com,或者你服務(wù)器的 IP 地址,其它都可以留空。

三、其他擴(kuò)展名的證書文件

.crt

應(yīng)該是 Certification 的縮寫。常見于 Unix 系統(tǒng),編碼有可能是 PEM,也可能是 DER,大多數(shù)應(yīng)該是 PEM 編碼。

.cer

應(yīng)該是 Certification 的縮寫。常見于 Windows 系統(tǒng),編碼有可能是 PEM,也可能是 DER,大多數(shù)應(yīng)該是 DER 編碼。

.key

通常用來存放一個(gè)公鑰或者私鑰,并非 X.509 證書,編碼同樣可能是 PEM 或 DER。

四、證書不同格式間的轉(zhuǎn)換

1、PEM

PEM 轉(zhuǎn)為 DER

$ openssl x509 -outform der -in certificate.pem -out certificate.der 

PEM 轉(zhuǎn)為 P7B

$ openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CAcert.cer 

PEM 轉(zhuǎn)為 PFX

$ openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CAcert.crt 
2、DER

DER 轉(zhuǎn)為 PEM

$ openssl x509 -inform der -in certificate.cer -out certificate.pem 
3、P7B

P7B 轉(zhuǎn)換為 PEM

$ openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer 

P7B 轉(zhuǎn)換為 PFX

# 先將 P7B 轉(zhuǎn)為 PEM $ openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer# 再將 PEM 轉(zhuǎn)為 PFX/P12 $ openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CAcert.cer 
4、PFX

x509pfx

$ openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx 

PKCS#12PEM 的相互轉(zhuǎn)換:

# 從 cert.p12 中提取 私鑰,不包含證書,私鑰不加密,輸出為 PEM 格式 $ openssl pkcs12 -nocerts -nodes -in cert.p12 -out privatekey.pem# 從 cert.p12 中,只輸出 client 證書,不輸出私鑰,輸出為 PEM 格式 $ openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem# 將密鑰與證書合成為 cert.p12 $ openssl pkcs12 -export -in cert.pem -out cert.p12 -inkey key.pem 

PFX 格式文件中提取私鑰格式文件(.key):

$ openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key 

PFX 轉(zhuǎn)換為 PEM

$ openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes 

注意:將 PFX 轉(zhuǎn)換為 PEM 格式時(shí),OpenSSL 會(huì)將所有的證書和私鑰保存到一個(gè)文件中。需要使用文本編輯器打開,將每個(gè)證書和私鑰(包括 BEGIN/END 聲明)保存到自己獨(dú)立的文本文件中,并且分別保存為 certificate.cer, CAcert.cer, privateKey.key。

5、BKS

在一些 Java 環(huán)境(如 Android)中,需要 BKS 格式證書。一般做法是將 P12 轉(zhuǎn)為 BKS:

# 先使用 openssl 把 crt 和 key 轉(zhuǎn)換為 p12 證書 $ openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12# 使用 keytool 把 p12 轉(zhuǎn)換為 bks 證書 $ keytool -importkeystore -srckeystore client.p12 -srcstoretype pkcs12 -destkeystore client.bks -deststoretype bks -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath bcprov-ext-jdk15on-158.jar 

使用 KeyTool 轉(zhuǎn)換為 BKS 格式時(shí),需要 bcprov-ext-jdk15on-158.jar,可以在這里找到。文件路徑直接帶在 -providerpath 參數(shù)后面即可。也可以放到如下路徑:jdk/jre/lib/ext


五、一些其他格式的介紹

JKS

Java Key Storage,這是 Java 的專利,跟 OpenSSL 關(guān)系不大。利用 Java 的一個(gè)叫 keytool 的工具,可以將 .pfx 轉(zhuǎn)為 .jks,keytool 也能直接生成 .jks。JKS 文件格式被廣泛的應(yīng)用在基于 Java 的 Web 服務(wù)器、應(yīng)用服務(wù)器、中間件??梢詫?JKS 文件導(dǎo)入到Tomcat、 WebLogic 等軟件。

KDB

通??梢詫?Apache/OpenSSL 使用的“KEY文件 + CRT文件”格式轉(zhuǎn)換為標(biāo)準(zhǔn)的 IBM KDB文件。KDB 文件格式被廣泛的應(yīng)用在 IBM 的 WEB 服務(wù)器、應(yīng)用服務(wù)器、中間件。你可以將 KDB 文件導(dǎo)入到 IBM HTTP Server、IBM Websphere 等軟件。

OCSP

在線證書狀態(tài)協(xié)議(Online Certificate StatusProtocol, rfc2560),于實(shí)時(shí)表明證書狀態(tài)。OCSP 客戶端通過查詢 OCSP 服務(wù)來確定一個(gè)證書的狀態(tài),可以提供給使用者一個(gè)或多個(gè)數(shù)字證書的有效性資料,它建立一個(gè)可實(shí)時(shí)響應(yīng)的機(jī)制,讓用戶可以實(shí)時(shí)確認(rèn)每一張證書的有效性,解決由CRL引發(fā)的安全問題。OCSP 可以通過 HTTP 協(xié)議來實(shí)現(xiàn)。rfc2560 定義了 OCSP 客戶端和服務(wù)端的消息格式。

CRL

證書吊銷列表(Certification Revocation List)是一種包含撤銷的證書列表的簽名數(shù)據(jù)結(jié)構(gòu)。CRL 是證書撤銷狀態(tài)的公布形式,CRL 就像信用卡的黑名單,用于公布某些數(shù)字證書不再有效。CRL是一種離線的證書狀態(tài)信息。它以一定的周期進(jìn)行更新。CRL 可以分為完全 CRL和增量 CRL。在完全 CRL中包含了所有的被撤銷證書信息,增量 CRL 由一系列的 CRL 來表明被撤銷的證書信息,它每次發(fā)布的 CRL 是對(duì)前面發(fā)布 CRL的增量擴(kuò)充?;镜?CRL 信息有:被撤銷證書序列號(hào)、撤銷時(shí)間、撤銷原因、簽名者以及 CRL 簽名等信息?;?CRL 的驗(yàn)證是一種不嚴(yán)格的證書認(rèn)證。CRL 能證明在 CRL 中被撤銷的證書是無效的。但是,它不能給出不在 CRL中的證書的狀態(tài)。如果執(zhí)行嚴(yán)格的認(rèn)證,需要采用在線方式進(jìn)行認(rèn)證,即 OCSP認(rèn)證。一般是由CA簽名的一組電子文檔,包括了被廢除證書的唯一標(biāo)識(shí)(證書序列號(hào)),CRL用來列出已經(jīng)過期或廢除的數(shù)字證書。它每隔一段時(shí)間就會(huì)更新,因此必須定期下載該清單,才會(huì)取得最新信息。

SCEP

簡單證書注冊(cè)協(xié)議?;谖募淖C書登記方式需要從您的本地計(jì)算機(jī)將文本文件復(fù)制和粘貼到證書發(fā)布中心,和從證書發(fā)布中心復(fù)制和粘貼到您的本地計(jì)算機(jī)。 SCEP可以自動(dòng)處理這個(gè)過程但是CRLs仍然需要手工的在本地計(jì)算機(jī)和CA發(fā)布中心之間進(jìn)行復(fù)制和粘貼。

六、參考資料


(完)


本頁內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請(qǐng)及時(shí)與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會(huì)在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://www.cokiv.cn/20423.html
相關(guān)開發(fā)語言