Sobes.tech
Junior — Middle

Kuidas saab digitaalse sertifikaadi legitiimsust kinnitada?

sobes.tech AI

Vastus AI-lt

Tõestamaks digitaalsertifikaadi legitiimsust Go-s, tehakse tavaliselt järgmised sammud:

  1. Sertifikaadi allkirja kontroll — veenduge, et sertifikaat on allkirjastatud usaldusväärse sertifitseerimiskeskuse (CA) poolt.
  2. Sertifikaadijada (ahela valideerimine) — veenduge, et ahel sertifikaadist kuni juur-CA-ni on õige ja usaldusväärne.
  3. Kehtivusaja kontroll — sertifikaat peab olema kehtiv (mitte aegunud).
  4. Sertifikaadi tühistamise kontroll — kasutades CRL-i või OCSP-d.

Go-s kasutatakse selle jaoks paketti crypto/x509. Näide sertifikaadi kontrollimisest:

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

func verifyCert(certPEM []byte, roots *x509.CertPool) error {
    blokk, _ := pem.Decode(certPEM)
    if blokk == nil {
        return fmt.Errorf("viga sertifikaadi PEM-i analüüsimisel")
    }
    cert, err := x509.ParseCertificate(блок.Bytes)
    if err != nil {
        return err
    }

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

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

Siin on roots usaldusväärsete juursertifikaatide kogum. Kui cert.Verify ei anna viga, loetakse sertifikaat õiguspäraseks.