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:
- Sertifikaadi allkirja kontroll — veenduge, et sertifikaat on allkirjastatud usaldusväärse sertifitseerimiskeskuse (CA) poolt.
- Sertifikaadijada (ahela valideerimine) — veenduge, et ahel sertifikaadist kuni juur-CA-ni on õige ja usaldusväärne.
- Kehtivusaja kontroll — sertifikaat peab olema kehtiv (mitte aegunud).
- 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.