ПРИМЕЧАНИЕ. Перейдите к # 3 , если у вас уже есть объект x509.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
Результат можно подтвердить, если скопировать сертификат в примере в файл cert.pem
с помощью команды:
openssl x509 -inform pem -in cert.pem -pubkey -noout
Вы должны получить тот же результат!