Junior — Middle
Цифрлык сертификаттын мыйзамдуулугун кантип тастыктоо керек?
sobes.tech AI
AIден жооп
Goда санариптик сертификаттын мыйзамдуулугун ырастоо үчүн адатта төмөнкү кадамдар аткарылат:
- Сертификаттын кол коюусун текшерүү — сертификат ишенимдүү сертификаттоо борбору (CA) тарабынан кол коюлганына ишенүү.
- Сертификаттардын чынжырын текшерүү (чынжырды ырастоо) — сертификаттан тамыр CAга чейинки чынжыр туура жана ишенимдүү экенине көз жеткізүү.
- Мөөнөтүнүн жарамдуулугун текшерүү — сертификат жарактуу болушу керек (өткөн эмес).
- Сертификаттын жок кылынганын текшерүү — CRL же OCSP аркылуу.
Goда бул үчүн crypto/x509 пакети колдонулат. Сертификатты текшерүүнүн мисалы:
import (
"crypto/x509"
"encoding/pem"
"io/ioutil"
"log"
)
func verifyCert(certPEM []byte, roots *x509.CertPool) error {
блок, _ := pem.Decode(certPEM)
if блок == nil {
return fmt.Errorf("PEM сертификатын талдоо ката")
}
cert, err := x509.ParseCertificate(блок.Bytes)
if err != nil {
return err
}
opts := x509.VerifyOptions{
Roots: roots,
}
_, err = cert.Verify(opts)
return err
}
Мында, roots ишенимдүү тамыр сертификаттардын топтому. Эгер cert.Verify ката бербесе, сертификат мыйзамдуу деп эсептелет.