前言
这是我第一次在项目中接触.PEM文件,并需要使用它完成相关需求。所以我有必要了解其相关知识并对它进行记录。本文所参考的博客将在文末贴出连接。
.PEM 文件,全称 Privacy-Enhanced Mail ,直译过来就是“隐私增强邮件”。它是一种文件编码格式,采用 Base64 ASCII 编码的纯文本,用于承载证书和密钥信息。主要应用在 Linux 服务器上。
主要格式:
以下贴出本文所涉及到的名词表格及其相对应的含义
如何使用
自定义生成公钥和私钥对
- 生成公钥和私钥对
- 生成的 rsa_private.key 文件中包含了私钥和公钥,我们可以通过下面的命令提取出公钥
对文件进行公钥加密和私钥解密
- 生成测试文件
- 使用公钥对文件进行加密,对应参数为 -encrypt
- 使用私钥对文件进行解密,对应参数为 -decrypt
- 获得结果
对文件进行私钥加密和公钥解密
该过程在实际使用中并非用加密和解密来描述,而是用签名和校验来描述
- 生成测试文件
- 使用公钥对文件进行加密,对应参数为 -sign
- 使用私钥对文件进行解密,对应参数为 -verify
- 获得结果
公钥加密和私钥加密的区别 *
阐述一个前提,在非对称加密的前提下,公钥加密的使用场景是加密和解密,私钥加密的使用场景是签名和验证。有两个终端,我们称其分别为A、B。
假设现在A为发送方,需要向B发送信息,有两个地方需要注意:
- A发送的信息只能由B解读
- B必须确保该消息来自A
以上两点,则分别对应加解密,以及签名验证的概念。
首先,A和B分别持有两个密钥。A持有自身的私钥以及B的公钥,B持有自身私钥以及A的公钥。当A向B发送消息时,首先使用B的公钥对内容进行加密,然后使用自己的私钥对其签名。当B收到该消息后,首先用A的公钥对其验签,通过后再使用自己的私钥对其进行解密,最后拿到真正的消息内容。
确保公钥有效性 *
当拿到一个公钥后,为了判断公钥从属、安全性以及是否被杜撰,需要先将公钥向某些权威认证机构进行验证,然而,公钥自身并没有携带这些信息。因此引入以下两个概念:
- 证书:公钥信息 + 额外的其他信息(包括所属机构,采用加密算法等), 文件扩展名一般为 .crt。
- 证书认证机构(CA):当拿到证书后,需要将证书交付给 CA 完成验证。验证成功则可以正常使用证书中的公钥向持有对应私钥的网络发起通信。
证书认证流程模拟
- 生成密钥对
- 基于生成的密钥对生成 .csr, .csr 文件为证书签名请求的预处理文件
- 将生成的 .csr 文件发送给证书认证机构(CA)
这里我们是模拟流程,所以不需要向真正的 CA 注册,因为这个过程是收费的
我们把自己当作 CA 进行注册
参考博客
- .pem文件,.csr文件,.key文件。。。区别 - rachel_zh - 博客园 (cnblogs.com)
- RSA的公钥和私钥到底哪个才是用来加密和哪个用来解密? - 知乎 (zhihu.com)
- pem文件的生成_生成pem_LLLLLLLLEE的博客-CSDN博客
- 公私钥加解密,及签名验签 - 知乎 (zhihu.com)
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/26175.html