为了账号安全,请及时绑定邮箱和手机立即绑定

从 PEM 解析和打印 X.509 属性

从 PEM 解析和打印 X.509 属性

Go
饮歌长啸 2022-01-04 14:40:18
我正在寻找一个简单的示例,用于在 go 中解析 X.509 PEM 并将值转储到标准输出。任何人都可以提供一个例子吗?
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超13个赞

你想用它encoding.pem来解码 pem 文件,它会给你 DER 块,你可以用crypto/x509包解码。


例如:


certPEMBlock, err := ioutil.ReadFile(certFile)

if err != nil {

    log.Fatal(err)

}


var blocks [][]byte

for {

    var certDERBlock *pem.Block

    certDERBlock, certPEMBlock = pem.Decode(certPEMBlock)

    if certDERBlock == nil {

        break

    }


    if certDERBlock.Type == "CERTIFICATE" {

        blocks = append(blocks, certDERBlock.Bytes)

    }

}


for _, block := range blocks {

    cert, err := x509.ParseCertificate(block)

    if err != nil {

        log.Println(err)

        continue

    }


    fmt.Println("Certificate:")

    fmt.Printf("\tSubject: %+v\n", cert.Subject)

    fmt.Printf("\tDNS Names: %+v\n", cert.DNSNames)

    fmt.Printf("\tEmailAddresses: %+v\n", cert.EmailAddresses)

    fmt.Printf("\tIPAddresses: %+v\n", cert.IPAddresses)

}


查看完整回答
反对 回复 2022-01-04
  • 1 回答
  • 0 关注
  • 322 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号