2017-07-27 567 views
0

一个新的.pem我有以下文件Cert.pem,Key.pem,CACert.pemWindows中,OpenSSL的生成key.pem和cert.pem

有人告诉我,我需要将其解密。质子交换膜。 1)什么是Windows OpenSSL命令来做到这一点?

我需要将解密后的key.pem文件与cert.pem文件结合起来,以产生一个新的cert.pem文件。 2)什么是Windows OpenSSL命令来做到这一点?

感谢

的OpenSSL
+0

这是关于编程和开发。我需要为我的Java密钥库生成一个密钥。安全是发展的重要组成部分。 –

回答

0

Unix安装应包括手册页,但Windows版本往往没有,因为Windows通常没有找到并显示它们的任何方式。 目前支持版本的手册页,另外还有开发主管'master',可在OpenSSL网站https://www.openssl.org/docs/manpages.html上找到。所有OpenSSL的“命令”实际上是由(单)计划openssl运行,从而通过运行

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 

你没有提到具有用于加密的密钥文件的密码执行pkey some args;我希望你这样做,因为没有它就无法解密(或者做其他任何事情)。

对于1.0.0以上版本,pkey是转换私钥的首选方式,包括加密和解密;看到它的手册页。简而言之,您只需告知pkey从输入文件中读取并写入输出文件,并且省略任何规范的密码;该遗漏将导致它编写未加密的密钥。 Note 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 

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

+0

所以我在Windows上安装了openssl,并且没有pkey命令。所以目前我有一个key.pem(加密的),我无法解密。如果没有pkey我怎么解密? –

+0

(更正后)@JamesRelic:如果你想要pkcs8并且你在0.9.x上,就像我写的一样,使用:'pkcs8 -topk8' **和-nocrypt' **(这里不是默认值)。 –