package utils import ( "crypto/x509" "encoding/pem" "log" "os" ) func ParseCertificate(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 }