Go语言中如何将*x509.Certificate转换为[]byte字节切片
如何将*x509.Certificate转换为非PEM编码的[]byte?
问题描述
我已经通过以下代码获取了一个*x509.Certificate类型的证书对象:
cert := parseCert("cert.pem") // returns *x509.Certificate
现在需要把这个cert转换为[]byte,要求和x509.CreateCertificate(...)返回的结果格式一致——也就是非PEM编码的原始证书字节。请问该怎么实现?
解决方案
直接使用x509.Certificate结构体的Raw字段即可,这个字段存储的就是证书的DER编码字节切片,和x509.CreateCertificate返回的格式完全一致:
certByte := cert.Raw
补充说明
x509.CreateCertificate返回的是证书的DER编码字节,这是二进制格式的证书原始表示,没有PEM的Base64编码和-----BEGIN CERTIFICATE-----这类头尾标识。- 当你解析PEM格式的证书时,解析过程已经自动将PEM解码为DER格式,并把结果存入
cert.Raw字段,直接取用就能得到符合需求的字节切片。
内容的提问来源于stack exchange,提问作者Md. A. A. Apu
相关产品推荐
相关产品推荐

