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:
- Sertifikato parašo patikrinimas — įsitikinkite, kad sertifikatas pasirašytas patikimos sertifikavimo institucijos (CA).
- Sertifikatų grandinės (grandinės validacija) — įsitikinkite, kad grandinė nuo sertifikato iki šaknies CA yra teisinga ir patikima.
- Galiojimo laiko patikrinimas — sertifikatas turi būti galiojantis (nepasibaigęs).
- 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.