2013-03-14 64 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