Windows,OpenSSL从key.pem和cert.pem生成一个新的.pem

时间:2017-07-27 10:32:21

标签: windows openssl pem

我有以下文件Cert.pem,Key.pem,CACert.pem

我被告知需要解密key.pem。 1)执行此操作的Windows OpenSSL命令是什么?

我需要将解密的key.pem文件与cert.pem文件组合以生成新的cert.pem文件。 2)用于执行此操作的Windows OpenSSL命令是什么?

由于

1 个答案:

答案 0 :(得分:0)

OpenSSL的Unix安装应该包含手册页,但Windows版本通常不包括,因为Windows通常没有任何查找和显示它们的方法。 当前支持的版本的手册页以及开发主管的“master”可在OpenSSL网站https://www.openssl.org/docs/manpages.html上找到。所有OpenSSL'命令'实际上都由(单个)程序openssl运行,因此您可以通过运行

来执行pkey some args
 openssl pkey some args
 rem if openssl.exe is on your PATH or in the current directory, otherwise
 x:\path\to\openssl pkey some args

您没有提及加密密钥文件的密码;我希望你这样做,因为没有它你就无法解密(或做任何其他事情)。

对于1.0.0 up,pkey是转换私钥的首选方式,包括加密和解密;看其手册页。简而言之,您只需告诉pkey从输入文件中读取并写入输出文件,并省略任何密码规范;遗漏会导致它写一个未加密的密钥。注意pkey将以PKCS8格式写出输出,这对于大多数用途是首选,但如果您出于某种原因确实需要“遗留”或“传统”格式 - 请询问“告诉”您这个文件的软件是谁将使用 - 1.1.0 pkey可以做到这一点,但早先不能。 如果您坚持使用0.9.x版本,通常只在过时的系统上使用pkcs8 -topk8 -nocrypt用于PCKS8输出;看到了。

如果您需要传统/传统格式(在1.1.0以下的版本中),您必须使用'legacy'per-algorithm命令,因此您需要知道您的密钥(文件)是什么算法。看一下它所说的-----BEGIN something PRIVATE KEY-----的第一行。如果某些内容是RSA,请使用rsa;对于DSA dsa;对于EC ec;看到各自的页面。如果某些内容为ENCRYPTED,您必须先将其解密为PkCS8,然后使用asn1parse查看它以确定它是哪种算法,但我预计不太可能需要旧版未加密密钥的人从PKCS8加密开始。

OpenSSL不提供任何特殊操作来组合PEM文件,因为连接多种类型的文件是一种常见操作。在Unix上,这是使用cat程序规范完成的;在Windows上,它可以通过在源中使用带有加号的(内置)copy命令来完成;在Unix和Windows上,可以通过创建一个文件然后附加到它来完成:

 copy decryptedkey.pem combined.pem
 type certificate.pem >> combined.pem
 rem >> means redirect the output from that command ('type') 
 rem normally on the console to _the end of_ the named file.

在这种情况下,您希望通过添加decryptedkey.pem的内容来修改cert.pem,所以只需执行

 type decryptedkey.pem >> cert.pem

或者,您可以使用像记事本这样的纯文本编辑器。打开两个文件;选择第二个文件中的所有文本并复制(或剪切)并粘贴到第一个文件的末尾;保存修改后的第一个文件。