Sobes.tech
Junior — Middle

Kaip galima patvirtinti skaitmeninio sertifikato teisėtumą?

sobes.tech AI

Atsakymas iš AI

Norint patvirtinti skaitmeninio sertifikato teisėtumą Go dažniausiai atliekami šie žingsniai:

  1. Sertifikato parašo patikrinimas — įsitikinkite, kad sertifikatas pasirašytas patikimos sertifikavimo institucijos (CA).
  2. Sertifikatų grandinės (grandinės validacija) — įsitikinkite, kad grandinė nuo sertifikato iki šaknies CA yra teisinga ir patikima.
  3. Galiojimo laiko patikrinimas — sertifikatas turi būti galiojantis (nepasibaigęs).
  4. Sertifikato atšaukimo patikrinimas — naudojant CRL arba OCSP.

Go šiam tikslui naudojamas crypto/x509 paketas. Pavyzdys sertifikato patikrinimo:

import (
    "crypto/x509"
    "encoding/pem"
    "io/ioutil"
    "log"
)

func verifyCert(certPEM []byte, roots *x509.CertPool) error {
    blokas, _ := pem.Decode(certPEM)
    if blokas == nil {
        return fmt.Errorf("klaida apdorojant PEM sertifikatą")
    }
    cert, err := x509.ParseCertificate(блокas.Bytes)
    if err != nil {
        return err
    }

    opts := x509.VerifyOptions{
        Roots: roots,
    }

    _, err = cert.Verify(opts)
    return err
}

Čia, roots yra patikimų šakninių sertifikatų rinkinys. Jei cert.Verify negrąžina klaidos, sertifikatas laikomas teisėtu.