2013-09-26 67 views
0

我有一個.PEM文件和一個.pub文件,我用下面的命令來創建它們轉換。質子交換膜和對的.pub .pfx文件

openssl genrsa -out temp.pem 1024 
openssl rsa -in temp.pem -pubout -out temp.pub 

現在我想給他們做出一個.PFX文件是二進制文件,包含私鑰和公鑰。可能嗎?怎麼樣? (我測試過som openssl命令,但文件是空的)。

我用這個命令

openssl pkcs12 -export -in temp.pem -inkey temp.pub -out temp.pfx -name "Temp Certificate" 

它生成此錯誤:

無法加載私鑰 17880:錯誤:0906D06C:PEM套路:PEM_read_bio:無從下手行:\加密\ PEM \ pem_li bc:703:期望:任何私鑰

回答

4

您會收到錯誤消息,因爲對於-inkey參數,您必須指定私鑰;不是公鑰。

OpenSSL的pkcs12命令沒有提供將公鑰和私鑰整合到一個文件中的方法。它專門用於將證書和私鑰合併到一個文件中。在上述情況下,您擁有的是公鑰,而不是證書。

從手冊頁:

-in filename The filename to read certificates and private keys from, standard input by default. They must all be in PEM format. The order doesn't matter but one private key and its corresponding certificate should be present. If additional certificates are present they will also be included in the PKCS#12 file.

注意,它專門提到,一個私鑰和相應的證書應該存在。我通常用它來生成一個PKCS#12文件的命令是:

openssl pkcs12 -export -in cert.pem -inkey private.key -out file.pfx -name "My Certificate"

+0

OK,非常感謝你,如果我有一個的.pub和.PEM文件,我怎麼能在一個.CER文件他們。在您的openssl命令中,您使用了.key文件而非.pub文件 – user217648

+0

private.key只是PEM格式的私鑰。公鑰由cert.pem簽名,由CA簽名。問題是:你究竟想要什麼?如果你想產生一個證書/私鑰對,那麼有OpenSSL命令來做到這一點。看看這裏:bit.ly/1h9sA7L。您還可以從現有私鑰生成證書:bit.ly/3v9aN5。但是,所有這些都需要CA(至少是自簽名的CA)簽署請求。另一方面,如果您只想將公鑰和私鑰打包到PKCS#12中,我不認爲有OpenSSL命令。希望這可以幫助。 – Karthik

+0

我想在我的oauth conusmer和Jira之間建立OAuth通信。在Jira服務器上,您必須使用以下命令生成一個公鑰:「openssl rsa -in temp.pem -pubout -out temp.pub」。我測試了其他格式,它只接受那一種格式。現在在我的消費者身上,我必須有一個包含與該公鑰對應的私鑰的pfx文件。 – user217648