2013-03-14 327 views

回答

55

您可以使用OpenSSL命令行工具。下面的命令應該訣竅

openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts 

openssl pkcs12 -in client_ssl.pfx -out root.pem -cacerts 

如果你想你的文件被密碼保護等,那麼還有其他選項。

你可以閱讀整個文檔here

+6

也許很明顯出於某種原因,或者是可以安裝'pkcs12'工具,但兩者的命令是'openssl'參數。 – iurisilvio 2015-06-13 21:47:59

112

做它在Linux上...這裏的另一個角度是如何使生成的單個文件包含解密的專用鍵,以便像HAProxy的可以使用它沒有提示您輸入密碼做。

openssl pkcs12 -in file.pfx -out file.pem -nodes 

然後,您可以配置HAProxy以使用file.pem文件。


這是從以前的版本編輯在那裏我有這些多步驟,直到我意識到-nodes選項只是簡單繞過私鑰加密。但是我將它留在這裏,因爲它可能只是幫助教學。

openssl pkcs12 -in file.pfx -out file.nokey.pem -nokeys 
openssl pkcs12 -in file.pfx -out file.withkey.pem 
openssl rsa -in file.withkey.pem -out file.key 
cat file.nokey.pem file.key > file.combo.pem 
  1. 的第一步會提示您輸入密碼打開PFX。
  2. 第二步提示您輸入密碼,還可以爲密鑰組成密碼。
  3. 第三步提示您輸入您剛纔爲存儲解密的密碼。
  4. 第四把它放在一起成1個文件。

然後,您可以配置HAProxy以使用file.combo.pem文件。

爲什麼需要2個單獨的步驟,其中您使用密鑰指示文件而另一個文件沒有密鑰,是因爲如果您有一個同時具有加密和解密密鑰的文件,則類似於HAProxy的文件仍會提示您輸入在它使用密碼的時候。

+0

我沒有花時間熟悉openssl,但是pem轉換不包括私鑰。編輯提供了關於如何將證書和密鑰合併到一個pem文件中的細節,正是我所需要的。 – ebt 2014-12-08 16:33:15

+0

在Windows系統上使用的類型,而不是貓 – hupseb 2015-01-31 09:17:18

+0

在Windows這個版本的OpenSSL是易於使用這樣的事情:http://slproweb.com/products/Win32OpenSSL.html – 2016-05-05 16:49:51