【问题标题】:Windows, OpenSSL generate a new .pem from key.pem and cert.pemWindows,OpenSSL 从 key.pem 和 cert.pem 生成一个新的 .pem
【发布时间】:2017-07-27 10:32:20
【问题描述】:

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

有人告诉我我需要解密 key.pem。 1) 执行此操作的 windows OpenSSL 命令是什么?

我需要将解密后的 key.pem 文件与 cert.pem 文件结合起来生成一个新的 cert.pem 文件。 2) 执行此操作的 windows OpenSSL 命令是什么?

谢谢

【问题讨论】:

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

标签: windows openssl pem


【解决方案1】:

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 以上,pkey 是转换私钥的首选方式,包括加密和解密;查看它的手册页。简而言之,您只需告诉pkey 从输入文件读取并写入输出文件,然后省略任何密码规范;该遗漏将导致它写入未加密的密钥。注意pkey 将以 PKCS8 格式写入输出,这对于大多数用途来说是首选,但如果您出于某种原因实际上需要“传统”或“传统”格式 - 询问谁“告诉”您此文件将是什么软件与 -- 1.1.0 pkey 一起使用可以做到这一点,但之前不能。 如果您坚持使用 0.9.x 版本,通常只在过时的系统上,请使用pkcs8 -topk8 -nocrypt 进行 PCKS8 输出;看那个。

如果您需要传统/传统格式(低于 1.1.0 的版本),您必须使用“传统”每个算法命令,因此您需要知道您的密钥(文件)是什么算法。看看第一行上面写着 -----BEGIN something PRIVATE KEY----- 的地方。如果是 RSA,请使用 rsa;对于动态搜索广告dsa;欧共体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

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

【讨论】:

  • 所以我在Windows上安装了openssl,并且没有pkey命令。所以目前我有一个我无法解密的 key.pem(加密)。如果没有 pkey,我该如何解密它。
  • (已更正)@JamesRelic:如果您想要 pkcs8 并且您使用的是 0.9.x,正如我所写,请使用:pkcs8 -topk8 with -nocrypt`(在这里不是默认值)。
猜你喜欢
  • 2020-03-03
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
  • 2017-04-09
  • 2022-08-11
相关资源
最近更新 更多