Sobes.tech
Junior — Middle

Цифрлык сертификаттын мыйзамдуулугун кантип тастыктоо керек?

sobes.tech AI

AIден жооп

Goда санариптик сертификаттын мыйзамдуулугун ырастоо үчүн адатта төмөнкү кадамдар аткарылат:

  1. Сертификаттын кол коюусун текшерүү — сертификат ишенимдүү сертификаттоо борбору (CA) тарабынан кол коюлганына ишенүү.
  2. Сертификаттардын чынжырын текшерүү (чынжырды ырастоо) — сертификаттан тамыр CAга чейинки чынжыр туура жана ишенимдүү экенине көз жеткізүү.
  3. Мөөнөтүнүн жарамдуулугун текшерүү — сертификат жарактуу болушу керек (өткөн эмес).
  4. Сертификаттын жок кылынганын текшерүү — 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 ката бербесе, сертификат мыйзамдуу деп эсептелет.