Files
scm/crt/ParseCert.go
wt d5da23849f
Build / Build (push) Successful in 17s
refactor
2025-07-21 22:16:54 +07:00

42 lines
997 B
Go

package crt
import (
"crypto/x509"
"encoding/pem"
"log"
"os"
)
func ParseCert(certPath string) map[string]any {
// Чтение PEM-файла
pemData, err := os.ReadFile(certPath)
if err != nil {
log.Fatal("Ошибка чтения файла:", err)
}
// Декодирование PEM-блока
block, _ := pem.Decode(pemData)
if block == nil {
log.Fatal("Не удалось декодировать PEM блок")
}
// Парсинг сертификата
cert, err := x509.ParseCertificate(block.Bytes)
if err != nil {
log.Fatal("Ошибка парсинга сертификата:", err)
}
res := make(map[string]any)
res["Subject"] = cert.Subject
res["Issuer"] = cert.Issuer
res["SerialNumber"] = cert.SerialNumber
res["NotBefore"] = cert.NotBefore
res["NotAfter"] = cert.NotAfter
res["DNSNames"] = cert.DNSNames
res["KeyUsage"] = cert.KeyUsage
res["SignatureAlgorithm"] = cert.SignatureAlgorithm
// Вывод информации
return res
}