Sobes.tech
Junior — Middle

Rəqəmsal sertifikatın qanuniliyini necə təsdiqləmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da rəqəmsal sertifikatın qanuni olduğunu təsdiqləmək üçün adətən aşağıdakı addımlar həyata keçirilir:

  1. Sertifikatın imzasını yoxlamaq — sertifikatın etibarlı sertifikatlaşdırma mərkəzi (CA) tərəfindən imzalandığından əmin olun.
  2. Sertifikat zənciri yoxlaması (zəncir doğrulaması) — sertifikatdan kök CA-ya qədər olan zəncirin düzgün və etibarlı olduğunu təmin edin.
  3. Müddətinin keçməməsini yoxlamaq — sertifikat qüvvədə olmalıdır (müddəti bitməməlidir).
  4. Sertifikatın ləğv olunmasını yoxlamaq — CRL və ya OCSP vasitəsilə.

Go-da bunun üçün crypto/x509 paketi istifadə olunur. Sertifikatın yoxlanması nümunəsi:

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-inin təhlilində xəta")
    }
    cert, err := x509.ParseCertificate(block.Bytes)
    if err != nil {
        return err
    }

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

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

Burada, roots etibarlı kök sertifikatların toplusudur. Əgər cert.Verify xəta verməzsə, sertifikat qanuni sayılır.