Ssl-Certificate

如何使用 StartSSL 中的 SSL 證書文本創建 SSL 證書?

  • September 14, 2016

我收到了StartSSL為我的提供的純文字證書,看起來有點像:

-----BEGIN CERTIFICATE----- [...]Many letters and digits[...] -----END CERTIFICATE-----

我正在嘗試使用此處找到的說明.cer從中創建一個文件。除了證書文本,我還需要在OpenSSL命令行上像這樣傳遞私鑰文本*(如果錯誤,請糾正我) :*text

openssl pkcs12 -export -out mycertkey.p12 -in certificate.txt -inkey key.txt

更新: StartSSL 站點上的Create PKCS#12 (PFX) File選項也需要文本中的私鑰。根據Micheal 的 評論進行了嘗試

根據最近與 StartSSL 人員的對話,我嘗試在Converter 網站上生成 .cer 文件,但沒有生成 .cer 文件的選項

根據我與 StartSSL 人員的討論電子郵件執行緒,我相信私鑰在我的 CSR 中,但是當我使用pkcsOpenSSL 工具上的實用程序將其作為密鑰提供時,我沒有得到很好的結果:

無法載入私鑰

**問題:**如何提供私鑰文本?我的意思是 StartSSL 工具箱上的私鑰文本在哪裡?或者如何從我的證書中將其提取為文本?

您說您想創建一個.cer文件,但您連結的說明並沒有這樣做。一個.cer文件通常包含一個證書,或者很少包含多個證書,而一個.p12or.pfx文件的全部目的(它們基本上是同一件事)是包含一個privatekey AND cert(s)。如果您嘗試執行 SSL/TLS 伺服器(例如 HTTPS,還需要 LDAPS SMTPS FTPS 等),您確實需要私鑰和證書,否則通常不需要。

私鑰用於生成CSR,但不在其中;CSR 被發送給其他人,因此它不會是私有的。它不在 StartSSL,因為那不是私有的。它不在您的證書中,因為那不是私人的。

看看你的.pfxwith中有什麼openssl pkcs12 -in whatever.pfx -nodes。如果輸出至少包含一個以一行開頭的塊,-----BEGIN PRIVATE KEY-----然後是幾行所有或幾乎所有字母和數字,那麼一行-----END PRIVATE KEY-----你有一些私鑰。(如果使用低於 1.0.0 版的 OpenSSL,它會說RSA PRIVATE KEY,而不是只是PRIVATE KEY.)如果是這樣,請執行: openssl pkcs12 -in whatever.pfx -nocerts -nodes -out key.txt. 現在試試openssl pkcs12 -export你的問題。如果它沒有給出錯誤並且沒有說“沒有證書與私鑰匹配”,那麼您擁有正確的密鑰。此時,結果可以導入到 Windows 商店並供 IIS 使用,也可以直接供某些程序使用,例如 Tomcat。

然而,一個 SSL/TLS 伺服器也應該有鏈證書。今天的 CA 大多使用一個鏈證書(以及根,您在這裡不需要);有些人使用兩個或偶爾更多。哪個鏈證書正確取決於您獲得的證書類型(驗證和類別);StartSSL 網站應該能夠告訴你。如果您沒有獲取和配置正確的鏈證書,您的伺服器將執行,但客戶端有時會無法連接到它,可能幾乎一直如此,也可能很少。以 PEM 格式獲取正確的鏈證書(您已經看到的,帶有-----BEGIN CERTIFICATE-----through -----END CERTIFICATE-----)並將它們放入一個文件中,例如chain.txt,然後添加-certfile chain.txt到您的pkcs12 -export命令中。

PS-大多數人和範例.pem不使用.txt這些 PEM 格式文件的副檔名。該openssl軟體可以以任何方式工作,但它對人們更有意義和有幫助。

引用自:https://serverfault.com/questions/712942