cert_info.go 592 B

123456789101112131415161718192021222324252627282930313233
  1. package cert
  2. import (
  3. "crypto/x509"
  4. "encoding/pem"
  5. "github.com/pkg/errors"
  6. "os"
  7. )
  8. func GetCertInfo(sslCertificatePath string) (cert *x509.Certificate, err error) {
  9. certData, err := os.ReadFile(sslCertificatePath)
  10. if err != nil {
  11. err = errors.Wrap(err, "error read certificate")
  12. return
  13. }
  14. block, _ := pem.Decode(certData)
  15. if block == nil || block.Type != "CERTIFICATE" {
  16. err = errors.New("certificate decoding error")
  17. return
  18. }
  19. cert, err = x509.ParseCertificate(block.Bytes)
  20. if err != nil {
  21. err = errors.Wrap(err, "certificate parsing error")
  22. return
  23. }
  24. return
  25. }