如果我有一个*x509.Certificate
对象,如何从中提取公钥base64字符串表示形式?
答案 0 :(得分:2)
注意:如果您已有x509.Certificate
对象,请跳至#3 。
您需要执行以下操作:
block, _ := pem.Decode([]byte(certPEM))
pem.Decode()
解析证书。cert, _ := x509.ParseCertificate(block.Bytes)
x509.ParseCertificate()
封存公钥。publicKeyDer, _ := x509.MarshalPKIXPublicKey(cert.PublicKey)
x509.MarshalPKIXPublicKey()
将其编码为PEM编码的结构。publicKeyBlock := pem.Block{
Type: "PUBLIC KEY",
Bytes: publicKeyDer,
}
publicKeyPem := string(pem.EncodeToMemory(&publicKeyBlock))
在pem.EncodeToMemory()
上运行它
如果使用以下命令将示例中的证书复制到文件cert.pem
,则可以确认结果:
openssl x509 -inform pem -in cert.pem -pubkey -noout
您应该得到相同的结果!