如果我有一个*x509.Certificate对象,我如何从中提取公钥 base64 字符串表示形式?
1 回答
BIG阳
TA贡献1859条经验 获得超6个赞
注意:如果您已经拥有该对象,请跳至#3x509.Certificate
。
您需要执行以下操作:
用 解码 PEM
pem.Decode()
。
block, _ := pem.Decode([]byte(certPEM))
解析证书
x509.ParseCertificate()
。
cert, _ := x509.ParseCertificate(block.Bytes)
用 封送公钥
x509.MarshalPKIXPublicKey()
。
publicKeyDer, _ := x509.MarshalPKIXPublicKey(cert.PublicKey)
使用 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
你应该得到相同的结果!
- 1 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消