42 lines
997 B
Go
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
|
|
}
|