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

Sho*_*ky2 0 base64 go x509certificate x509

如果我有一个*x509.Certificate对象,我如何从中提取公钥 base64 字符串表示?

ifn*_*tak 5

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


您需要执行以下操作:

  1. 用 解码 PEM pem.Decode()
block, _ := pem.Decode([]byte(certPEM))
Run Code Online (Sandbox Code Playgroud)
  1. 解析证书x509.ParseCertificate()
cert, _ := x509.ParseCertificate(block.Bytes)
Run Code Online (Sandbox Code Playgroud)
  1. 使用 编组公钥x509.MarshalPKIXPublicKey()
publicKeyDer, _ := x509.MarshalPKIXPublicKey(cert.PublicKey)
Run Code Online (Sandbox Code Playgroud)
  1. 将其编码为 PEM 编码结构pem.EncodeToMemory()
publicKeyDer, _ := x509.MarshalPKIXPublicKey(cert.PublicKey)
Run Code Online (Sandbox Code Playgroud)

Go Playground上运行它


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

openssl x509 -inform pem -in cert.pem -pubkey -noout
Run Code Online (Sandbox Code Playgroud)

你应该得到相同的结果!