Sobes.tech
Junior — Middle

Kā var apstiprināt digitālā sertifikāta likumību?

sobes.tech AI

Atbilde no AI

Lai apstiprinātu digitālā sertifikāta likumību Go, parasti tiek veikti šādi soļi:

  1. Sertifikāta paraksta pārbaude — pārliecinieties, ka sertifikāts ir parakstīts uzticama sertifikācijas iestādes (CA).
  2. Sertifikātu ķēdes (ķēdes validācija) — pārliecinieties, ka ķēde no sertifikāta līdz saknes CA ir pareiza un uzticama.
  3. Derīguma termiņa pārbaude — sertifikātam jābūt derīgam (nebeidzies).
  4. Sertifikāta atsaukuma pārbaude — izmantojot CRL vai OCSP.

Go šim nolūkam izmanto crypto/x509 paketi. Piemērs sertifikāta pārbaudei:

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

func verifyCert(certPEM []byte, roots *x509.CertPool) error {
    bloks, _ := pem.Decode(certPEM)
    if bloks == nil {
        return fmt.Errorf("kļūda, parsējot PEM sertifikātu")
    }
    cert, err := x509.ParseCertificate(bloks.Bytes)
    if err != nil {
        return err
    }

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

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

Šeit roots ir uzticamu sakņu sertifikātu kopums. Ja cert.Verify nesniedz kļūdu, sertifikāts tiek uzskatīts par likumīgu.