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

如何从 go 中的 x509 证书公钥中获取字符串?

如何从 go 中的 x509 证书公钥中获取字符串?

Go
慕工程0101907 2023-06-19 13:50:46
如果我有一个*x509.Certificate对象,我如何从中提取公钥 base64 字符串表示形式?
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

注意:如果您已经拥有该对象,请跳至#3x509.Certificate


您需要执行以下操作:

  1. 用 解码 PEM pem.Decode()

block, _ := pem.Decode([]byte(certPEM))
  1. 解析证书x509.ParseCertificate()

cert, _ := x509.ParseCertificate(block.Bytes)
  1. 用 封送公钥x509.MarshalPKIXPublicKey()

publicKeyDer, _ := x509.MarshalPKIXPublicKey(cert.PublicKey)
  1. 使用 PEM 编码结构对其进行编码pem.EncodeToMemory()

publicKeyBlock := pem.Block{

    Type:  "PUBLIC KEY",

    Bytes: publicKeyDer,

}

publicKeyPem := string(pem.EncodeToMemory(&publicKeyBlock))

在Go Playground上运行


cert.pem如果使用以下命令将示例中的证书复制到文件中,则可以确认结果:


openssl x509 -inform pem -in cert.pem -pubkey -noout

你应该得到相同的结果!


查看完整回答
反对 回复 2023-06-19
  • 1 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信