Golang标准库——crypto(4)
type Certificate struct {
Raw []byte // 原始、完整的ASN.1 DER内容(证书、签名算法、签名)
RawTBSCertificate []byte // ASN.1 DER 内容的证书部分
RawSubjectPublicKeyInfo []byte // 原始DER编码的SubjectPublicKeyInfo
RawSubject []byte // 原始DER编码的Subject
RawIssuer []byte // 原始DER编码的Issuer
Signature []byte
SignatureAlgorithm SignatureAlgorithm
PublicKeyAlgorithm PublicKeyAlgorithm
PublicKey interface{}
Version int
SerialNumber *big.Int
Issuer pkix.Name
Subject pkix.Name
NotBefore, NotAfter time.Time // 有效期前后界,本时间段之外无效
KeyUsage KeyUsage
// Extensions保管原始的X.509扩展。当解析证书时,本字段用于摘录本包未解析的不关键扩展。
// 序列化证书时,Extensions字段会被忽略,参见ExtraExtensions。
Extensions []pkix.Extension
// ExtraExtensions包含应被直接拷贝到任何序列化的证书中的扩展。
// 本字段保管的值会覆盖任何其它字段生成的扩展。
// ExtraExtensions字段在解析证书时不会被填写,参见Extensions。
ExtraExtensions []pkix.Extension
ExtKeyUsage []ExtKeyUsage // 密钥扩展用途的序列
UnknownExtKeyUsage []asn1.ObjectIdentifier // 遇到的本包不能识别的密钥扩展用途
BasicConstraintsValid bool // 如果下两个字段合法,将为真
IsCA bool
MaxPathLen int
SubjectKeyId []byte
AuthorityKeyId []byte
// RFC 5280, 4.2.2.1(认证信息存取)
OCSPServer []string
IssuingCertificateURL []string
// 证书持有者的替用名称
DNSNames []string
EmailAddresses []string
IPAddresses []net.IP
// 名称的约束
PermittedDNSDomainsCritical bool // 如为真则名称约束被标记为关键的
PermittedDNSDomains []string
// CRL配销点
CRLDistributionPoints []string
PolicyIdentifiers []asn1.ObjectIdentifier
}