网站黄色在线观看视频,男人和女人操逼有免费的视频吗2018高清,91熟女丨老女人丨高潮丰满,丝袜高潮流白浆潮喷在线播放

中國站

中國站

國際版

聯(lián)系我們

400-002-9968

售前咨詢

售后服務(wù)

注冊 登錄

博客 > 如何將證書轉(zhuǎn)換成正確的格式?

如何將證書轉(zhuǎn)換成正確的格式?

  • 標(biāo)簽:
  • SSL證書
  • 證書格式轉(zhuǎn)換
  • 數(shù)字證書
  • X509

瀏覽量:8267次評論:0次

作者:Claire時間:2019-09-06 01:36:33


如何將數(shù)字證書從一種文件格式轉(zhuǎn)換成另一種,讓我們來看看吧。


今天,我們將講一些有些技術(shù)含量的問題,談?wù)撊绾螌⒆C書轉(zhuǎn)換成正確的格式。盡管我們之前談?wù)撨^SSL證書的文件格式轉(zhuǎn)換事宜,但是還是有很多人在問我們這一問題,而且我想要花一點時間來進行稍微深入一點的探討。


這也意味著解決這一過程中不可避免的會出現(xiàn)的一些問題,比如我為什么不能使用轉(zhuǎn)換器工具?以及什么是OpenSSL?


一旦我們解開了一切,這一問題就不會感覺那么艱巨了。因此,如果你準備好了學(xué)習(xí)如何將證書轉(zhuǎn)換成正確的格式…...


讓我們開始吧。


我為什么需要知道如何將證書轉(zhuǎn)換成正確的格式?


在我們談?wù)撊绾螌⒆C書轉(zhuǎn)換成正確的格式之前,讓我們首先從這意味著什么開始。我們經(jīng)常使用的服務(wù)器類型有幾十種,然而,不幸的是,并沒有一種統(tǒng)一標(biāo)準的文件類型。如果這讓你感到煩惱,而你又是一個美國人的話,現(xiàn)在你就知道了,當(dāng)必須把文件的公制單位轉(zhuǎn)換成美國常用單位時,世界上其他國家的人是什么感受了,因為我們認為不以10為單位來計算的話更有運動精神。


無論如何,服務(wù)器類型的這一多樣性已經(jīng)導(dǎo)致人們在使用多種不同文件格式的數(shù)字證書。現(xiàn)在,它們不全都是X.509證書嗎?——你可能會這樣問。嗯,是的。如果你想要我們這樣做,我們可以寫一整篇有關(guān)這一話題的文章,探討Abstract Syntax Notatio和字節(jié)數(shù)組,但是,我有一種感覺,這篇文章的信息量會非常大,比你想象的還要多。因此,讓我們概括一下吧:X.509證書是數(shù)字證書的一種類型,它使用了PKI(X.509 v3)來驗證服務(wù)器是相關(guān)公有密鑰的合法所有人。當(dāng)你看到如下所示的擴展時:



  • .der?

  • .pem?

  • .crt .cer?

  • .pkcs7?

  • .p7b?

  • .pkcs8?

  • .pkcs12?

  • .pfx .p12



這些指代的是證書是如何編碼以及呈現(xiàn)的。因為沒有一個更有說服力的定義,所以基本上,編碼是將數(shù)據(jù)編程成可以為另一個系統(tǒng)所使用的格式。或者,更簡單地來說,對數(shù)據(jù)進行編碼,因此,計算機就可以讀取和使用它。最常見的編碼標(biāo)準之一是ASCII或美國信息互換標(biāo)準代碼(一種比我們的測量系統(tǒng)更普遍存在的標(biāo)準),這是一種用于包含文本的文件的編碼方案。


現(xiàn)在,讓我們來談?wù)撘幌戮幋a樣式。



  • .der—代表可區(qū)別編碼規(guī)則,打開看是二進制編碼格式。Windows會把這些看作是證書文件,并且實際上會將證書以.der格式文件導(dǎo)出,但是這一過程使用的是像.crt或.cer這樣的擴展。

  • .pem—代表保密郵件,考慮到PEM基本上不能是實現(xiàn)本身功能,但卻被證明在作為容器格式方面是很有用的,這是很有趣的。PEM文件是Base64編碼后的DER文件。


我可以看到你臉上流露出來的困惑的表情,因此讓我來進一步解釋一下吧。


DER文件是以二進制——1和0——形式編碼的X.509數(shù)字證書。Base64是一種二進制到文本的編碼方案,因此PEM(一種Base64編碼后的DER文件)也是這個相同的X.509證書,但是是在文本中編碼的,而這個文本(記?。。┦怯肁SCII碼表示的。



現(xiàn)在,你弄懂一點了嗎?


好的,讓我們繼續(xù)。


DER文件很少在Windows之外使用,因此我們將不再使用它們。還記得我們說過PEM是一個容器嗎?這是因為它可以包含任何內(nèi)容,無論是數(shù)字證書本身,還是整個證書鏈和密鑰對。不幸的是,并不是所有的瀏覽器都會將擴展名為.pem的文件識別為證書,所以很多時候,在PEM文件(也是DER文件)的末尾你會看到一個不同的擴展名:



  • .cert

  • .crt

  • .cer


因此,討論如何將證書轉(zhuǎn)換為正確的格式,也就是討論如何對它進行編碼或進行表示?,F(xiàn)在,除了PEM和DER之外,還有其他一些表示證書的方法。PKCS,或公鑰加密標(biāo)準,通常你可以看到PKCS 7、PKCS8和PKCS12。讓我們從PKCS7開始,它最初是由公司RSA定義的,之后被移交給了IETF。它是一種多用途的格式,可以用于加密和簽名數(shù)據(jù)的傳播。它最終演變?yōu)榱思用芟⒄Z法標(biāo)準,但是就像SSL和TLS一樣,PKCS7是我們?nèi)耘f在口頭上所使用的名稱。它是一個開放的標(biāo)準,由Windows支持。但是需要注意的一點是,它不能包含私鑰。PKCS7經(jīng)常與電子郵件證書一起使用,并形成了S/MIME安全電子郵件的基礎(chǔ)。


PKCS8是一個類似的標(biāo)準,用于攜帶私鑰。最后是PKCS12,它通過加密提供了更好的安全性。與PEM文件非常類似,它也可以包含一切事物,無論是單個證書,還是整個證書鏈和密鑰對,但是,與PEM不同的是,它是一個完全加密的、有密碼保護的容器。如果在生成SSL證書時,系統(tǒng)提示你輸入密碼,而且它又是PKCS12格式的,則可以使用它打開該證書。


如果只用一個工具,要做到這一點不是更容易嗎?


絕對的。它的風(fēng)險也會大得多。雖然一般來說,我們認為你可以信任所有擁有這種工具的網(wǎng)站,但是將你的數(shù)字證書上傳到除你自己的服務(wù)器之外的任何地方通常是不明智的。我這里所指的是,不要使用在線工具來將數(shù)字證書轉(zhuǎn)換成不同的文件格式。使用OpenSSL命令在你自己的服務(wù)器上進行。


這就引出了下一個不可避免的問題……


什么是OpenSSL?


OpenSSL是一個軟件庫。計算機并不是生來就知道如何做。你必須教它。軟件庫是代碼、腳本、配置和程序的一個集合,它可以幫助利用給定的函數(shù)。例如,如果你正在編寫一款需要大量數(shù)學(xué)計算的軟件,那么只需要添加一個數(shù)學(xué)軟件庫就可以了,這樣你就不必自己再編寫一大堆復(fù)雜的數(shù)學(xué)函數(shù)了。



現(xiàn)在將這個概念應(yīng)用于SSL。OpenSSL是一個軟件庫,在幾乎所有服務(wù)器上都支持SSL/TLS協(xié)議。是的,它無處不在。因此,雖然X.509證書可能沒有通用的文件格式,但是至少有一種通用語言可以在服務(wù)器上操作它們。OpenSSL是用C語言編寫的,這使得任何有編程基礎(chǔ)知識的人都可以訪問它。


因此,現(xiàn)在讓我們來看看如何將證書轉(zhuǎn)換為正確的格式。


如何將證書轉(zhuǎn)換為正確的格式?


將X.509轉(zhuǎn)換成PEM——這決定了你想編碼證書的方式(除非有特定的原因,否則不要選擇DER)。


openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem


將DER轉(zhuǎn)換成PEM——二進制編碼到ASCII


openssl x509 -inform der -in certificatename.der -out certificatename.pem


將PEM轉(zhuǎn)換成DER——ASCII到二進制


openssl x509 -outform der -in certificatename.pem -out certificatename.der


將PEM轉(zhuǎn)換成PKCS7——PKCS7文件可以只包含容器證書和證書鏈,但永遠沒有私有密鑰。


openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer


將PKCS7轉(zhuǎn)換成PEM——記住,這一文件將不包括密鑰對。


openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem


將PKCS12轉(zhuǎn)換成PEM——也稱為PFX,PKCS12容器可以包括證書、證書鏈和私有密鑰。它們有密碼保護,得到了加密。


openssl pkcs12 -in certificatename.pfx -out certificatename.pem


將PKCS12轉(zhuǎn)換成PKCS8——PKCS8與PKCS7類似,只不過它針對的是私有密鑰存儲,并且可以用密碼加密。


這需要兩個步驟:


openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem


openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8


將PKCS7轉(zhuǎn)換成PKCS12——這需要兩個步驟,因為你將需要把私有密鑰和證書文件結(jié)合起來。


openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer?


openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile? cacert.cer

我的評論

還未登錄?點擊登錄

微信掃碼溝通
微信掃碼溝通

微信掃碼溝通

AI
return head