[信息安全] 05 X.509 公钥证书的格式标准
X.509是# 公钥证书的格式标准, 广泛用于TLS/SSL安全通信或者其他需要认证的环境中。X.509证书可以由# CA颁发,也可以自签名产生。
1 Overview {#1-overview}
X.509证书中主要含有公钥
、身份信息
、签名信息
和有效性信息
等信息。这些信息用于构建一个验证公钥的体系,用来保证客户端得到的公钥正是它期望的公钥。
公钥
: 非对称密码中的公钥。公钥证书的目的就是为了在互联网上分发公钥。身份信息
: 公钥对应的私钥持有者的信息,域名以及用途等。签名信息
: 对公钥进行签名的信息,提供公钥的验证链。可以是CA的签名或者是自签名,不同之处在于CA证书的根证书大都内置于操作系统或者浏览器中,而自签名证书的公钥验证链则需要自己维护(手动导入到操作系统中或者再验证流程中单独提供自签名的根证书)。有效性信息
:证书的有效时间区间,以及# CRL等相关信息。
X.509证书的标准规范RFC5280中详细描述了证书的# 1.1 Encoding Format和# 1.2 Structure。
1.1 Encoding Format {#1-1-encoding-format}
- # DER格式 :
二进制
格式。 - # PEM格式 :
ASCII文本
格式。在DER格式或者其他二进制数据的基础上,使用base64编码为ASCII文本,以便于在仅支持ASCII的环境中使用二进制的DER编码的数据
。
1.2 Structure {#1-2-structure}
一个具体的X.509 v3数字证书结构大致如下 :
CertificateVersion NumberSerial NumberSignature Algorithm IDIssuer NameValidity periodNot BeforeNot AfterSubject nameSubject Public Key InfoPublic Key AlgorithmSubject Public KeyIssuer Unique Identifier (optional)Subject Unique Identifier (optional)Extensions (optional)
...
Certificate Signature Algorithm
Certificate Signature
2 File Extension {#2-file-extension}
X.509有很多种常用的扩展名。不过这些扩展名有时候也是其他类型文件的扩展名,也就是说具有这个扩展名的文件并不一定是X.509证书。也可能只是保存了私钥的文件。
.pem
: PEM格式。.key
: PEM格式的私钥文件。.pub
: PEM格式的公钥文件。.crt
: PEM格式的# 公钥证书文件,也可能是DER。.cer
: DER格式的# 公钥证书文件,也可能是PEM。.crs
: PEM格式的# CSR文件,也可能是DER。
3 Reference {#reference}
3.1 公钥证书 {#public-key-certificate}
Public Key Certificate
=公钥证书
。
参考资料 : https://en.wikipedia.org/wiki/Public_key_certificate
3.2 CA {#certificate-authority}
CA
=Certificate Authority
=证书颁发机构
。
参考资料 : https://en.wikipedia.org/wiki/Certificate_authority
3.3 DER {#distinguished-encoding-rules}
DER
=Distinguished Encoding Rules
是# X.690标准中的一种二进制编码格式。
下面的文件是https://google.com所使用的DER编码的二进制公钥证书文件(由于是二进制,故而显示乱码)。
{{}}
参考资料 : https://en.wikipedia.org/wiki/X.690#DER_encoding。
3.4 PEM {#privacy-enhanced-mail}
PEM
=Privacy Enhanced Mail
=隐私增强邮件
。
PEM是一种事实上的标准文件格式,采用base64来编码密钥或证书等其他二进制数据,以便在仅支持ASCII
文本的环境中使用二进制数据
。PEM在RFC7468中被正式标准化。具体格式如下:
-----BEGIN label 1-----
base64 string...
-----END label 1-----
-----BEGIN label 2-----
base64 string...
-----END label 2-----
其中label 1
和label 2
可以有1~N
个。常用的label
有(https://tools.ietf.org/html/rfc7468#section-4):
CERTIFICATE
: 公钥证书文件 。CERTIFICATE REQUEST
: CSR请求证书文件。PRIVATE KEY
: 私钥文件。PUBLIC KEY
: 公钥文件。X509 CRL
: X509证书吊销列表文件。
下面的文件是上面的google.com.der.cer
的PEM编码形式 :
{{}}
参考资料 :
- https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail
- https://tools.ietf.org/html/rfc7468
3.5 CSR {#certificate-signing-request}
CSR
=Certificate Signing Request
=证书签名请求
。
-----BEGIN CERTIFICATE REQUEST-----
MIIBWDCCAQcCAQAwTjELMAkGA1UEBhMCU0UxJzAlBgNVBAoTHlNpbW9uIEpvc2Vm
c3NvbiBEYXRha29uc3VsdCBBQjEWMBQGA1UEAxMNam9zZWZzc29uLm9yZzBOMBAG
ByqGSM49AgEGBSuBBAAhAzoABLLPSkuXY0l66MbxVJ3Mot5FCFuqQfn6dTs+9/CM
EOlSwVej77tj56kj9R/j9Q+LfysX8FO9I5p3oGIwYAYJKoZIhvcNAQkOMVMwUTAY
BgNVHREEETAPgg1qb3NlZnNzb24ub3JnMAwGA1UdEwEB/wQCMAAwDwYDVR0PAQH/
BAUDAwegADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDATAKBggqhkjOPQQDAgM/ADA8
AhxBvfhxPFfbBbsE1NoFmCUczOFApEuQVUw3ZP69AhwWXk3dgSUsKnuwL5g/ftAY
dEQc8B8jAcnuOrfU
-----END CERTIFICATE REQUEST-----
参考资料 : https://en.wikipedia.org/wiki/Certificate_signing_request
3.6 CRL {#certificate-revocation-list}
CRL
=Certificate Revocation List
=证书吊销列表
。
-----BEGIN X509 CRL-----
MIIB9DCCAV8CAQEwCwYJKoZIhvcNAQEFMIIBCDEXMBUGA1UEChMOVmVyaVNpZ24s
IEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsT
PXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9SUEEgSW5jb3JwLiBieSBSZWYu
LExJQUIuTFREKGMpOTgxHjAcBgNVBAsTFVBlcnNvbmEgTm90IFZhbGlkYXRlZDEm
MCQGA1UECxMdRGlnaXRhbCBJRCBDbGFzcyAxIC0gTmV0c2NhcGUxGDAWBgNVBAMU
D1NpbW9uIEpvc2Vmc3NvbjEiMCAGCSqGSIb3DQEJARYTc2ltb25Aam9zZWZzc29u
Lm9yZxcNMDYxMjI3MDgwMjM0WhcNMDcwMjA3MDgwMjM1WjAjMCECEC4QNwPfRoWd
elUNpllhhTgXDTA2MTIyNzA4MDIzNFowCwYJKoZIhvcNAQEFA4GBAD0zX+J2hkcc
Nbrq1Dn5IKL8nXLgPGcHv1I/le1MNo9t1ohGQxB5HnFUkRPAY82fR6Epor4aHgVy
b+5y+neKN9Kn2mPF4iiun+a4o26CjJ0pArojCL1p8T0yyi9Xxvyc/ezaZ98HiIyP
c3DGMNR+oUmSjKZ0jIhAYmeLxaPHfQwR
-----END X509 CRL-----
参考资料 : https://en.wikipedia.org/wiki/Certificate_revocation_list
3.7 X.690 {#x690}
X.690是一个ITU-T标准,规定了几种ASN.1编码格式:
BER
=Basic Encoding Rules
: https://en.wikipedia.org/wiki/X.690#BER_encoding
CER
=Canonical Encoding Rules
: https://en.wikipedia.org/wiki/X.690#CER_encoding
DER
=Distinguished Encoding Rules
: https://en.wikipedia.org/wiki/X.690#DER_encoding
参考资料 : https://en.wikipedia.org/wiki/X.690
3.8 ASN.1 {#abstract-syntax-notation-1}
ASN.1
=Abstract Syntax Notation 1
=抽象标记语法1
。
参考资料 : https://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One
[信息安全] 05 X.509 公钥证书的格式标准相关推荐
- PKI/CA (5)X.509公钥证书
1. 定义 1.1. 公钥证书 既是对某个公钥加上一个签名,形式为:KeyPub + ca_Info + enc_ca_Hash+ addInfo KeyPub 欲签名的公钥 ca_Info身份信息 ...
- 数字证书X509格式标准简介
证书的标准规范,其中使用最广泛的是由ITU(International TelecommumcationUnion,国际电信联盟)和ISO(IntemationalOrganizationforSta ...
- 密钥格式标准PKCS,X.509
ASN.1 Abstract Syntax Notation One,抽象语法标记 ASN.1是一种 ISO/ITU-T 标准,用于描述对数据进行表示.编码.传输和解码.它提供了一整套正规的格式用于描 ...
- 【Http】加解密 生成 X.509格式,DER编码,后缀名.cer 加密公钥证书
1. 背景 因为遇到了问题:参考 [Https]keytool 导入证书到 本地 Exception: Input not an X.509 certificate 然后就想查查这个怎么解决搜到了如下 ...
- RFC2459 Internet X.509 公钥基础设施:证书和CRL简介
组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook ...
- rfc2459:Internet X.509 公钥基础设施:证书和 CRL 简介
组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook ...
- pem格式证书编码 x509_公钥证书编码解读
一.文件编码 PEM (Privacy Enhancement Message),定义见 结构组成 == {header} body {tail} 示例 -----BEGIN PUBLIC KEY-- ...
- android 使用crt/cer/pem格式的公钥证书
问题:android在网络各种教程里面,都是只有BKS的格式,但是一般后端给我们的公钥证书都是crt/cer/pem格式的,这种时候,常用的做法就是用keytools转换成bks格式. 个人感觉 ...
- X.509 数字证书结构和实例
http://www.cppblog.com/sleepwom/archive/2010/07/08/119746.html 一. X.509数字证书的编码 X.509证书的结构是用ASN1(Abst ...
- x.509数字证书编码详解
转自:http://blog.sina.com.cn/s/blog_49b531af0102eahs.html x.509数字证书编码详解 一. X.509数字证书的编码 X.509证书的结构是用AS ...
最新文章
- python的切片和索引是什么_NumPy 切片和索引
- linux 到我的电脑的命令,Linux你都是如何背命令的 -电脑资料
- linux下VNC配置详解
- 1.25亿用户以后,Netflix总结的系统高可用经验
- 注解不自动导包_玩转SpringBoot2.X:SpringBoot自动配置原理大揭秘
- SAP OData batch request的并行处理实现原理
- OpenCV--cvThreshold() 阈值化【转载】
- 题目264-国王的魔镜
- 北大计算机专业毕业论文,北京大学毕业论文格式范本
- 如何生成网站地图(Sitemap)
- 在ubuntu18.04系统上使用ROS跑ORB-SLAM3时遇到的问题总结
- 拒绝从入门到入土:初识C语言
- Android修行手册 - ConstraintLayout示例
- Android手机听筒和扬声器切换
- 【PHPWord】PHPOffice 套件之PHPWord快速入门
- 作业:自行录制轻音、浊音、爆破音并使用Audacity分析其时域和频域的特性
- 一年中的某周转换成当前周星期一和星期日的日期
- 整合支付-alipay
- BeanDefinition
- excel中右键单元格没有显示菜单选项
热门文章
- EXCEL 分组取前十的数据
- 项目市场调查报告的撰写要则
- c语言写股票交易软件,写股票软件
- 解决spring-data-jpa 级联添加时,主表放弃对外键维护时外键字段为null
- IT30:30岁IT男未来10年规划第1篇(2009-2020)
- Android:获取当前的锁屏壁纸或桌面壁纸
- and no properties discovered to create BeanSerializer 问题解决
- AD软件解决 Unknown Pin 和Failed to add class member 问题
- VC++两万字总结Windows系统中的Layered分层窗口技术(附源码)
- stm32内部基准电压