2023年12月13日发(作者:)
pem格式证书编码x509_PEM证书格式
Openssl
之
PEM
系列
作者
:
LaoKa
20080426
编码文件结构介绍
PEM
全称是
Privacy Enhanced Mail
,该标准定义了加密一个准备要发送邮件的标准,主要用来将各种
对象保存成
PEM
格式,并将
PEM
格式的各种对象读取到相应的结构中。它的基本流程是这样的:
1.
信息转换为
ASCII
码或其它编码方式;
2.
使用对称算法加密转换了的邮件信息;
3.
使用
BASE64
对加密后的邮件信息进行编码;
4.
使用一些头定义对信息进行封装,这些头信息格式如下(不一定都需要,可选的)
:
Proc-Type,4:ENCRYPTEDDEK-Info: cipher-name, ivec
其中,
第一个头信息标注了该文件是否进行了加密,
该头信息可能的值包
括
ENCRYPTED(
信息已经加密和签名
)
、
MIC-ONL
Y(
信息经过数字签名但没有加密
)
、
MIC-CLEAR(
信息经
过数字签名但是没有加密、也没有进行编码,可使用非
PEM
格式阅读
)
以及
CLEAR(
信息没有签名和加密
并且没有进行编码,
该项好象是
openssl
自身的扩展,
但是并没有真正实现
)
;
;
第二个头信息标注了加密的
算法以及使用的
ivec参量,
ivec
其实在这儿提供的应该是一个随机产生的数据序列,与块加密算法中要使
用到的初始化变量(
IV
)不一样。
5.
在这些信息的前面加上如下形式头标注信息:
-----BEGIN PRIV
ACY-ENHANCED MESSAGE-----
在这些信息的后面加上如下形式尾标注信息:
-----END PRIVACY-ENHANCED MESSAGE-----
上面是
openssl
的
PEM
文件的基本结构,需要注意的是,
Openssl
并没有实现
PEM
的全部标准,它只
是对
openssl
中需要使用的一些选项做了实现,详细的
PEM
格式,请参考
RFC1421
-
1424
。
下面是一个
PEM
编码的经过加密的
DSA私钥的例子:
-----BEGIN DSA PRIV
A
TE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,F80EEEBEEA7386C4
GZ9zgFcHOlnhPoiSbVi/yXc9mGoj44A6IveD4UlpSEUt6Xbse3Fr0KHIUyQ3oGnSmClKoAp/eOTb5Frhto85Szd
sxYtac+X1v5XwdzAMy2KowHVk1N8A5jmE2OlkNPNtof132MNlo2cyIRYaa35PPYBGNCmUm7YcYS8O90Y
tkrQZZTf4+2C4kllhMcdkQwkrFWSWC8YOQ7w0LHb4cX1FejHHom9Nd/0PN3vn3UyySvfOqoR7nbXkrpHX
mPIr0hxXRcF0aXcV/CzZ1/nfXWQf4o3+oD0T22SDoVcZY60IzI0oIc3pNCbDV3uKNmgekrFdqOUJ+QW8oW
p7oefRx62iBfIeC8DZunohMXaW
AQCU0sLQOR4yEdeUCnzCSywe0bG1diD0KYaEe+Yub1BQH4aLsBgDjardg
pJRTQLq0DUvw0/QGO1irKTJzegEDNVBKrVnV4AHOKT1CUKqvGNRP1UnccUDTF6miOAtaj/qpzra7sSk7d
kGBvIEeFoAg84kfh9hhVvF1YyzC9bwZepruoqoUwke/WdNIR5ymOVZ/4Liw0JdIOcq+atbdRX08niqIRkfdsZrU
j4leo3zdefYUQ7w4N2Ns37yDFq7
-----END DSA PRIV
ATE KEY-----
有时候
PEM
编码的东西并没有经过加密,只是简单进行了
BASE64
编码,下面是一个没有加密的证
书请求的例子:


发布评论