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:
- Sertifikāta paraksta pārbaude — pārliecinieties, ka sertifikāts ir parakstīts uzticama sertifikācijas iestādes (CA).
- Sertifikātu ķēdes (ķēdes validācija) — pārliecinieties, ka ķēde no sertifikāta līdz saknes CA ir pareiza un uzticama.
- Derīguma termiņa pārbaude — sertifikātam jābūt derīgam (nebeidzies).
- 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.