下载ASN.1的查看工具Asn1View.exe
访问支付宝,获取站点证书

导出证书详细信息-复制到文件-DER编码二进制X.509(.CER),在Asn1View.exe中打开

| 标识符 | 分隔符 |
|---|---|
| Integer | 0x02 |
| Bit String | 0x03 |
| OCTET String | 0x04 |
| Null | 0x05 |
| Object Indentifier | 0x06 |
| UTF8 String | 0x12 |
| Printable String | 0x13 |
| UTC Time | 0x17 |
| Sequence | 0x30 |
| Set | 0x31 |
RFC3280对证书的解释如下
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate, # 证书
signatureAlgorithm AlgorithmIdentifier, # 签名算法
signature BIT STRING # 签名
}
```
证书信息本身是一个 SEQUENCE,里面由两个 SEQUENCE和一个BIT STRING组成
SEQUENCE待签的证书,tbsCertificate=TO BE Signed Certificate;SEQUENCE签名算法,就是CA准备采用什么签名算法对tbsCertificate进行签名;BIT STRING签名信息,CA对tbsCertificate通过signatureAlgorithm签名算法签出来的签名信息。RFC3280对TBSCertificate的定义如下
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1, # 版本
serialNumber CertificateSerialNumber, # 序列号
signature AlgorithmIdentifier, # 签名算法
issuer Name, # 颁发者
validity Validity, # 有效期
subject Name, # 主题
subjectPublicKeyInfo SubjectPublicKeyInfo , # 主题公钥信息
issuerUniqueID[1] IMPLICIT UniqueIdentifier OPTIONAL, # 颁发者唯一ID
-- If present, version shall be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, # 主题唯一ID
-- If present, version shall be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL # 扩展
-- If present, version shall be v3
}
```
Version
Context[0](第一个)里面就是证书版本信息(默认V1)Version的定义Version ::= INTEGER { v1(0),v2(1),v3(2)ASN1View的16进制显示serialNumber
serialNumber的定义CertificateSerialNumber ::= INTEGERASN1View的16进制显示sign AlgorithmIdentifier
sign AlgorithmIdentifier的定义AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER, # 加密算法
parameters ANY DEFINED BY algorithm OPTIONAL # 由算法定义,支付宝VeriSign站点证书是NULL
}
ASN1View解释算法标识原文:https://www.cnblogs.com/SANFENs/p/12687423.html