我在文本文件中有私钥。如何生成 .pem 文件或 .cer 文件

Posted

技术标签:

【中文标题】我在文本文件中有私钥。如何生成 .pem 文件或 .cer 文件【英文标题】:I have private key in text file. How to generate .pem file or .cer file 【发布时间】:2020-06-29 12:32:41 【问题描述】:

我有计划文本格式的私钥。我想转换为 .pem 或 .cer 文件。 我不知道开放 SSL。我能够在 .net 应用程序中使用纯文本文件的私钥。谁来帮帮我。如何将其转换为 .pem 或 .cer 以在我们的项目中使用。

【问题讨论】:

不幸的是,私钥有多种格式。 “纯文本”不足以缩小范围以提供答案。 确定,我有像记事本私钥等作为下面----- BEGIN RSA私钥----- MIIEowIBAAKCAQEAonTnSEw5NyH4QWYKzhceN8xy / M2Y10Qq / juoLmdzY523w / Q1 YYY97439oeruoeuroterkherhtkerjo8u30948erjoieurotiuerotueordjouer34802380238kk ----- END RSA私钥----- 在项目中有密钥并使用它是不好的。所以,没有人可以轻易地缓和这一点。这就是为什么我想将此密钥保留在 .pem 或 cer 文件中并在 .net 应用程序中使用。我的思维方式正确吗?或者只是使用计划文本格式来存储密钥和使用。 【参考方案1】:

由于您的私钥内容以-----BEGIN RSA PRIVATE KEY-----开头,所以文件格式为PEM (RFC 7468)。

扩展名.pem 表示文件格式为PEM。但是,扩展名并没有告诉任何有关文件内容的信息。内容可能是私钥、公钥、证书或其他东西。

扩展名.cer表示文件内容为证书。但是,扩展名并没有说明文件格式。格式可以是 PEM、DER (X.690) 或其他格式。如果内容为文本数据且包含-----BEGIN ?????-----,则格式为PEM。另一方面,如果内容是二进制数据,则格式很可能是DER。

扩展名.key 常用于表示文件内容为私钥。但是,扩展名并没有说明文件格式。格式可以是 PEM、DER 或其他格式。

"Illustrated X.509 Certificate" 的下图说明了 ASN.1 (X.680))、DER (X.690) 之间的关系)、BASE64 (RFC 4648) 和 PEM (RFC 7468)。

如果您想将纯文本 (PEM) 中的私钥转换为某种二进制数据,请键入以下命令将格式转换为 DER。

openssl pkey -inform PEM -in private_key.pem -outform DER -out private_key.der
pkey :是键操作的子命令。 -inform PEM:表示输入文件的格式为PEM。 -in private_key.pem :指定输入文件。 -outform DER :指定 DER 作为输出格式。 -out private_key.der :指定输出文件。

【讨论】:

太好了,谢谢。我已从私钥转换为 .PEM。如何使用此 .PEM 来确保安全。我们是否需要像 .cer(证书)一样安装并按名称或指纹查找? 哈哈哈(^_^; 你的问题几乎等于“如何使用公钥密码术来保证安全?”这是一个太大的话题。公钥/私钥在各个地方都使用.

以上是关于我在文本文件中有私钥。如何生成 .pem 文件或 .cer 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何读取 .pem 文件以获取私钥和​​公钥

在 C# 中使用 json 私钥对 Header 和 Payload 进行签名

iOS der 和 p12文件

iOS der 和 p12文件

Java Keytools 证书转换成Openssl 的PEM 文件或keytools 导出私钥文件

使用 RSA/SHA-1 签名时崩溃