我在文本文件中有私钥。如何生成 .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 文件的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中使用 json 私钥对 Header 和 Payload 进行签名