Sobes.tech
Junior — Middle

Raqamli sertifikatning qonuniyligini qanday tasdiqlash mumkin?

sobes.tech AI

AIdan javob

Go'da raqamli sertifikatning qonuniyligini tasdiqlash uchun odatda quyidagi bosqichlar bajariladi:

  1. Sertifikat imzosini tekshirish — sertifikat ishonchli sertifikat markazi (CA) tomonidan imzolanganligiga ishonch hosil qilish.
  2. Sertifikat zanjiri (zanjir validatsiyasi) — sertifikatdan to'rtinchi CA ga qadar zanjir to'g'ri va ishonchli ekanligini tekshirish.
  3. Amaldilik muddati tekshiruvi — sertifikat amal qilish muddati ichida bo'lishi kerak (muddati o'tmagan).
  4. Sertifikat bekor qilishini tekshirish — CRL yoki OCSP yordamida.

Go'da bu uchun crypto/x509 paketi ishlatiladi. Sertifikatni tekshirish misoli:

import (
    "crypto/x509"
    "encoding/pem"
    "io/ioutil"
    "log"
)

func verifyCert(certPEM []byte, roots *x509.CertPool) error {
    block, _ := pem.Decode(certPEM)
    if block == nil {
        return fmt.Errorf("sertifikat PEM'ini tahlil qilishda xato")
    }
    cert, err := x509.ParseCertificate(block.Bytes)
    if err != nil {
        return err
    }

    opts := x509.VerifyOptions{
        Roots: roots,
    }

    _, err = cert.Verify(opts)
    return err
}

Bu yerda, roots ishonchli asosiy sertifikatlar to'plami. Agar cert.Verify xato qaytarmasa, sertifikat qonuniy hisoblanadi.