本至上,X.509证书是一个数字文档,这个文档根据RFC 5280来编码并/或签发。

实际上,“X.509证书”经常被用来指代IETF的PKIX(Public Key Infrastructure)证书和X.509 v3 证书标准中的CRL(Certificate Revocation List)。

X509 文件扩展名

首先我们要理解文件的扩展名代表什么。DER、PEM、CRT和CER这些扩展名经常令人困惑。很多人错误地认为这些扩展名可以互相代替。尽管的确有时候有些扩展名是可以互换的,但是最好你能确定证书是如何编码的,进而正确地标识它们。正确地标识证书有助于证书的管理。

编码 (也用于扩展名)

  • .DER = 扩展名DER用于二进制DER编码的证书。这些证书也可以用CER或者CRT作为扩展名。比较合适的说法是“我有一个DER编码的证书”,而不是“我有一个DER证书”。
  • .PEM = 扩展名PEM用于ASCII(Base64)编码的各种X.509 v3 证书。文件开始由一行"—– BEGIN …“开始。

常用的扩展名

  • .CRT = 扩展名CRT用于证书。证书可以是DER编码,也可以是PEM编码。扩展名CER和CRT几乎是同义词。这种情况在各种unix/linux系统中很常见。
  • CER = CRT证书的微软型式。可以用微软的工具把CRT文件转换为CER文件(CRT和CER必须是相同编码的,DER或者PEM)。扩展名为CER的文件可以被IE识别并作为命令调用微软的cryptoAPI(具体点就是rudll32.exe cryptext.dll, CyrptExtOpenCER),进而弹出一个对话框来导入并/或查看证书内容。
  • .KEY = 扩展名KEY用于PCSK#8的公钥和私钥。这些公钥和私钥可以是DER编码或者PEM编码。

CRT文件和CER文件只有在使用相同编码的时候才可以安全地相互替代。

PHPASN1 一个PHP框架,允许您使用来编码和解码任意结构。 这种编码在或异构计算机系统之间的通信中非常频繁地使用。 该API允许您对ASN.1结构进行编码以创建二进制数据,例如 证书 签名请求(CSR),X.509 证书 证书 吊销列表(CRL)。 PHPASN1还可以将二进制数据读取到单独PHP对象中,然后用户可以对其进行操作并对其进行重新编码。 现在可以在找到更改日志。 PHPASN1至少需要PHP 7.0和gmp或bcmath 扩展名 。 从v2.0开始, v2.0支持旧版本PHP(即PHP 5.6)。 如果必须使用过时PHP版本,请考虑使用 。 为了直接从Web 加载对象标识符名称,使用了 。 安装此库的首选方法是依靠 : $ composer require fgrosse/phpasn1 编码ASN.1结构 PHPASN1为您提供了每个已实现的ASN. ASN.1标准是一种描述二进制数据结构的数据格式标准。X.509数字 证书 标准采用了ASN.1标准来描述X.509 证书 格式。X.509标准采用了DER格式来编码ASN.1格式的数据。此外,RSA的公钥也使用了DER规范。DER格式的ASN.1标准除了RFC3641进行了格式规范外,还可以在找到更加易读的ASN.1规范和DER格式明确定义。X.690规定每个数据单元是一个TLV结构,TLV结构包含三项数据单元类型,包含04。1970~1999。... X.509是一种非常通用的 证书 格式。所有的 证书 都符合ITU-T X.509国际标准,因此(理论上)为一种应用创建的 证书 可以用于任何其他符合X.509标准的应用。X.509 证书 的结构是用ASN1(Abstract Syntax Notation One)进行描述数据结构,并使用ASN.1语法进行编码。 二进制格式。der类型的不用在编码解码,直接就是二进制的数据可以直接使用 2.PEM格式 PEM格式数据要根据base64编码解码后,得到的数据需要进行增加或裁剪特殊字符-、\n、\r、begin信息、end信息等。 下面一个例子就是PEM格式的私钥文件, 以-----BEGIN PRIVATE KEY----开头, 以-----END PRIVATE KEY-----结尾。 -----BEGIN PRIV This specification is one part of a family of standards for the X.509 Public Key Infrastructure (PKI) for the Internet. This specification profiles the format and semantics of certificates and certificate revocation lists (CRLs) for the Internet PKI. Procedures are described for processing of certification paths in the Internet environment. Finally, ASN.1 modules are provided in the appendices for all data structures defined or referenced. x.509标准规定了 证书 可以包含什么信息,并说明了记录信息的方法。 X.509结构中包括版本号(integer)、序列号(integer)、签名算法(object)、颁布者(set)、有效期(utc_time)、主体(set)、主体公钥(bit_string)、主体公钥算法(object)、签名值(bit_string)。 使用ASN.1描述,我们可以将其抽象为以下... 1) 证书 X.509标准是密码学里公钥 证书 的格式标准。X.509 证书 己应用在包括TLS/SSL(WWW万维网安全浏览的基石)在内的众多 Internet协议里,同时它也有很多非在线的应用场景,比如电子签名服务。X.509 证书 含有公钥和标识(主机名、组织或个人),并由 证书 颁发机. http://blog.csdn.net/jiayanhui2877/article/details/7288987 证书 主要的文件类型和协议有: PEM、DER、PFX、JKS、KDB、CER、KEY、CSR、CRT、CRL 、OCSP、SCEP等。 PEM – Openssl使用 PEM(Privacy Enhanced Mail)格式来存放各种信息,它是 openssl 默认采用