2011-05-26 230 views
1

嗨,我對這個openSSL和PEM stuf有點新,所以我想我會問你這裏的人。我有例如像這樣的文本(X509)格式的證書將SSL Cert轉換爲.pem格式

Certificate: 

Data: 

    Version: 3 (0x2) 

    Serial Number: 

     1f:19:f6:de:35:dd:63:a1:42:91:8a:d5:2c:c0:ab:12 

    Signature Algorithm: PKCS #1 SHA-1 With RSA Encryption 

    Issuer: "CN=Thawte SGC CA,O=Thawte Consulting (Pty) Ltd.,C=ZA" 

    Validity: 

     Not Before: Fri Dec 18 00:00:00 2009 

     Not After : Sun Dec 18 23:59:59 2011 

    Subject: "CN=mail.google.com,O=Google Inc,L=Mountain View,ST=Californ 

     ia,C=US" 
    ............................................ 
    ............................................ 

如何轉換爲.pem文件,這個OpenSSL的瞭解,這樣我就可以驗證證書?任何想法/幫助/建議將不勝感激。非常感謝所有人。

問候 哈日

+2

可能重複:[http://stackoverflow.com/questions/991758/openssl -pem-key](http://stackoverflow.com/questions/991758/openssl-pem-key) – 2011-05-26 20:02:07

+1

它看起來不像這個問題的重複。它看起來更像是以某種文本形式提供的證書。 – Bruno 2011-05-26 20:18:04

+0

只是爲了澄清,這不是另一個問題的重複,因爲在這種情況下,我沒有CRT/DER文件,我唯一的信息是存儲爲文本文件的證書。感謝您付出的努力來幫助。 – Hari 2011-05-26 20:22:29

回答

5

如果你所擁有的只是證書的文本形式(希望用公鑰模數和指數以及簽名的細節),你將不得不重建ASN.1結構及其DER格式( PEM表示是DER表單的base-64編碼)。

您還必須重新生成證書中擴展名的確切列表。我知道的大多數文本形式(例如openssl x509 -text的輸出或瀏覽器的顯示工具)將根據描述這些擴展的規範將擴展的OID和值轉換爲更易讀的格式,如果開發人員知道的話這些工具。

以相反順序進行系統化或多或少意味着閱讀大量描述潛在擴展的規範,並計算出這些工具產生的人類可讀文本所代表的內容。 PKIX RFC就是這些規範之一,閱讀起來並不是一件容易的事情,特別是如果你在現場開始的話。

最重要的是,您可能無法按照與實際證書中相同的順序組成ASN.1結構。如果您希望能夠驗證證書的簽名,則需要能夠重建確切的二進制結構。

在一般情況下,我會說這樣做不太可能。

編輯:考慮到你說什麼,你似乎可以用中的libnss的的certutil:

嘗試:

certutil -L -r -n "the-cert-nickname" -d . | openssl x509 -inform DER -outform PEM 
+0

啊......非常感謝。這似乎是訣竅。但是,當我使用新的Pem進行嘗試時,Verification似乎失敗了。那麼我想那是一個不同的問題。我是否需要創建一個單獨的問題,或者您認爲我自己可以編輯這個問題嗎?無論如何,非常感謝 – Hari 2011-05-26 21:03:47

+0

我想說這可能是一個不同的問題。嘗試說出你正在嘗試使用哪些工具。 'certutil'和'openssl'都應該能夠執行某種形式的驗證。 – Bruno 2011-05-26 21:05:24

+0

也許你可以幫助我解決這個問題http://stackoverflow.com/questions/19013529/converting-a-x-509-cert-to-a-pem-format謝謝 – 2013-09-25 19:27:21

3

我不知道您在您的文章是什麼呈現。
這似乎是現有證書的可視化。
你正在通過windows查看嗎?即打開.der或.cer文件?
如果您在詳細信息選項卡中遇到這種情況,請將副本按至文件並將其另存爲pem。
如果你需要保存它的格式。

+0

感謝您的回覆。不幸的是,雖然我沒有這樣做。我從一個從遠程cert8.db文件獲取它的文本文件(我認爲通過做類似certutil -L -n的文件),但是我沒有任何crt或der文件和唯一的信息我有這個文本格式的證書。另外爲了澄清我沒有通過Windows查看它,它存儲在Linux機器的文本文件中。再次感謝 – Hari 2011-05-26 20:21:09

+0

你所看到的是由應用程序記錄的證書信息。你需要從cert8.db.中提取證書。你有權訪問它嗎? – Cratylus 2011-05-26 20:25:25

+0

我有權訪問cert8.db。但是我沒有key3.db文件(它似乎被應用程序遮住了)。所以我無法做任何事情。就像我說的,我對此很新,而且我被卡住了,無法做到這一點。 – Hari 2011-05-26 20:27:28