什么是PEM文件?

如何打开,编辑和转换PEM文件

带有PEM 文件扩展名文件是用于私密传输电子邮件的隐私增强型邮件证书文件。 收到此电子邮件的人员可以确信该邮件在传输过程中未被更改,未向任何其他人显示,并且是由声称已发送该邮件的人发送的。

PEM格式源于通过电子邮件发送二进制数据的复杂性。 PEM格式使用base64对二进制进行编码,以便它以ASCII字符串形式存在。

PEM格式已被更新和更安全的技术所取代,但PEM容器目前仍用于存放证书颁发机构文件,公钥和私钥,根证书等。

注意:某些PEM格式的文​​件可能使用不同的文件扩展名,例如证书的CER或CRT,或公钥或私钥的KEY。

如何打开PEM文件

根据需要的应用程序和您使用的操作系统 ,打开PEM文件的步骤有所不同。 但是,您可能需要将PEM文件转换为CER或CRT,以便其中一些程序能够接受该文件。

视窗

如果您需要Microsoft Outlook电子邮件客户端中的CER或CRT文件,请在Internet Explorer中打开它,以便将其自动加载到正确的数据库中。 电子邮件客户端可以从那里自动使用它。

要查看哪些证书文件已加载到您的计算机上,并手动导入,请使用Internet Explorer的“ 工具”菜单访问“ Internet选项”>“内容”>“证书”

要将CER或CRT文件导入Windows,首先从“运行”对话框打开Microsoft管理控制台(使用Windows Key + R键盘快捷键输入mmc )。 从那里,转到文件>添加/删除管理单元... ,然后从左列中选择证书 ,然后选择窗口中心的添加>按钮。 在以下屏幕上选择计算机帐户 ,然后在向导中移动,并在询问时选择本地计算机

在“控制台根目录”下加载“证书”后,展开该文件夹并右键单击受信任的根证书颁发机构 ,然后选择所有任务>导入...。

苹果系统

对于Mac电子邮件客户端来说,与Windows相同的概念是正确的; 使用Safari将PEM文件导入钥匙串访问。

您还可以通过Keychain Access中的文件>导入项目...菜单导入SSL证书。 从下拉菜单中选择系统 ,然后按照屏幕提示进行操作。

如果这些方法不适用于将PEM文件导入macOS,则可以尝试以下命令

安全导入yourfile.pem -k〜/ Library / Keychains / login.keychain

Linux的

使用此keytool命令查看Linux上的PEM文件的内容:

keytool -printcert -file yourfile.pem

如果要将CRT文件导入到Linux的可信证书颁发机构存储库(如果您有PEM文件,请参阅下面的下一部分中的PEM到CRT转换方法),请执行以下步骤:

  1. 导航到/ usr / share / ca-certificates /
  2. 在那里创建一个文件夹(例如, sudo mkdir / usr / share / ca-certificates / work )。
  3. 将.CRT文件复制到新创建的文件夹中。 如果您不想手动执行此操作,则可以使用以下命令: sudo cp yourfile.crt /usr/share/ca-certificates/work/yourfile.crt
  4. 确保权限设置正确(文件夹为755,文件为644)。
  5. 运行sudo update-ca-certificates命令。

Firefox和Thunderbird

如果需要将PEM文件导入到Thunderbird等Mozilla电子邮件客户端,则可能需要先将PEM文件从Firefox中导出。 打开Firefox菜单并选择选项 。 转至高级>证书>查看证书>您的证书并选择需要导出的证书 ,然后选择备份...。

然后,在Thunderbird中,打开菜单并点击或点击选项 。 导航到高级>证书>管理证书>您的证书>导入...。导入窗口的“文件名:”部分,从下拉列表中选择证书文件 ,然后查找并打开PEM文件。

要将PEM文件导入Firefox,只需遵循与导出一个步骤相同的步骤,但选择Import ...而不是Backup ...按钮。

Java KeyStore

如果需要,请参阅此堆栈溢出线程,以将PEM文件导入Java KeyStore(JKS)。 另一个可能的选择是使用这个keyutil工具。

如何转换PEM文件

与大多数可以使用文件转换工具或网站转换的文件格式不同,您需要针对特定​​程序输入特殊命令,以便将PEM文件格式转换为大多数其他格式。

使用PuTTYGen将PEM转换为PPK。 从程序右侧选择加载 ,将文件类型设置为任何文件(*。*),然后浏览并打开您的PEM文件。 选择保存私钥以制作PPK文件。

使用OpenSSL(在此处获取Windows版本),可以使用以下命令将PEM文件转换为PFX:

openssl pkcs12 -inkey yourfile.pem -in yourfile.cert -export -out yourfile.pfx

如果您的PEM文件需要转换为CRT,就像Ubuntu一样,请在OpenSSL中使用此命令:

openssl x509 -in yourfile.pem -inform PEM -out yourfile.crt

OpenSSL还支持将.PEM转换为.P12(PKCS#12或公钥加密标准#12),但在运行此命令之前在文件末尾附加“.TXT”文件扩展名:

openssl pkcs12 -export -inkey yourfile.pem.txt -in yourfile.pem.txt -out yourfile.p12

有关将PEM文件与Java KeyStore结合使用(如果要将文件转换为JKS)或本教程中的Oracle将该文件导入Java信任库,请参阅上面的Stack Overflow链接。

更多关于PEM的信息

隐私增强邮件证书格式的数据完整性功能使用RSA-MD2和RSA- MD5消息摘要来比较消息发送前后的消息,以确保消息一直未被篡改。

在一个PEM文件的开头是一个标题----- BEGIN [label] ----- ,并且数据的结尾是一个类似的页脚,如下所示:----- END [label] - ----。 “[标签]”部分描述了该消息,因此它可能会读取私钥,证书请求证书

这是一个例子:

----- BEGIN PRIVATE KEY ----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMLgD0kAKDb5cFyP jbwNfR5CtewdXC + kMXAWD8DLxiTTvhMW7qVnlwOm36mZlszHKvsRf05lT4pegiFM 9z2j1OlaN + CI / X7NU22TNN6crYSiN77FjYJP464j876ndSxyD + rzys386T + 1r1aZ aggEdkj1TsSsv1zWIYKlPIjlvhuxAgMBAAECgYA0aH + T2Vf3WOPv8KdkcJg6gCRe yJKXOWgWRcicx / CUzOEsTxmFIDPLxqAWA3k7v0B + 3vjGw5Y9lycV / 5XqXNoQI14j y09iNsumds13u5AKkGdTJnZhQ7UKdoVHfuP44ZdOv / RJ5 / VD6F4zWywpe90pcbK + AWDVtusgGQBSieEl1QJBAOyVrUG5l2yoUBtd2zr / kiGm / DYyXlIthQO / A3 / LngDW 5 / ydGxVsT7lAVOgCsoT + 0L4efTh90PjzW8LPQrPBWVMCQQDS3h / FtYYd5lfz + FNL 9CEe1F1w9l8P749uNUD0g317zv1tatIqVCsQWHfVHNdVvfQ + vSFw38OORO00Xqs9 1GJrAkBkoXXEkxCZoy4PteheO / 8IWWLGGr6L7di6MzFl1lIqwT6D8L9oaV2vynFT DnKop0pa09Unhjyw57KMNmSE2SUJAkEArloTEzpgRmCq4IK2 / NpCeGdHS5uqRlbh 1VIa / xGps7EWQl5Mn8swQDel / YP3WGHTjfx7pgSegQfkyaRtGpZ9OQJAa9Vumj8m JAAtI0Bnga8hgQx7BhTQY4CadDxyiRGOGYhwUzYVCqkb2sbVRH9HnwUaJT7cWBY3 RnJdHOMXWem7 / W == ----- END PRIVATE KEY -----

一个PEM文件可以包含多个证书,在这种情况下,“END”和“BEGIN”部分彼此相邻。

你的文件仍然没有打开?

你的文件没有以上述方式打开的一个原因是你实际上没有处理PEM文件。 您可能会拥有一个只使用类似拼写文件扩展名的文件。 在这种情况下,这两个文件就没有必要关联起来,或者他们无法使用相同的软件程序。

例如, PEF看起来非常像PEM,但属于宾得Raw图像文件格式或Portable Embosser Format。 按照该链接查看如何打开或转换PEF文件,如果这是您真正拥有的。

如果您正在处理KEY文件,请注意并非所有以.KEY结尾的文件都属于本页所述的格式。 它们可能是注册软件程序(如LightWave)或Apple Keynote创建的Keynote演示文件时使用的软件许可证密钥文件。

如果你确定你有一个PEM文件,但有打开或使用它的麻烦,请参阅获取更多帮助 ,了解有关在社交网络上或通过电子邮件与我联系,在技术支持论坛上发帖等等的信息。 让我知道你有什么样的问题,我会看看我能做些什么来帮助。