Sobes.tech
Junior — Middle

როგორ ხორციელდება სერთიფიკატების გადაცემა HTTPS კავშირის დამყარების დროს?

sobes.tech AI

პასუხი AI-სგან

HTTPS კავშირის დამყარების დროს, ხდება TLS-ხელის მოწერა, რომლის დროსაც სერვერი აგზავნის თავის სერტიფიკატს მომხმარებელთან. ეს სერტიფიკატი შეიცავს სერვერის საჯარო გასაღებს და ადასტურებს მის ნამდვილობას, ხელმოწერილი სერტიფიკატების ცენტრის (CA) მიერ. მომხმარებელი ამოწმებს სერტიფიკატს, რათა დარწმუნდეს, რომ ის ვალიდურია და შეესაბამება მოსალოდნელ დომენს.

Go-ში, HTTPS-თან მუშაობისთვის, გამოიყენება crypto/tls პაკეტი. კავშირის დამყარების დროს, სერვერი ავტომატურად აგზავნის თავის სერტიფიკატს, თუ ის კონფიგურირებულია tls.Config-ში.

მაგალითი HTTPS სერვერის კონფიგურაციისა Go-ში:

package main

import (
    "crypto/tls"
    "log"
    "net/http"
)

func main() {
    srv := &http.Server{
        Addr: ":443",
        TLSConfig: &tls.Config{
            // სერტიფიკატი და გასაღები ავტომატურად იტვირთება სერვერის დაწყებისას
        },
    }

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Hello HTTPS"))
    })

    log.Fatal(srv.ListenAndServeTLS("server.crt", "server.key"))
}

აქ, ListenAndServeTLS ავტომატურად იტვირთებს სერტიფიკატს და გასაღებს და TLS-ხელის მოწერის დროს აგზავნის სერტიფიკატს მომხმარებელთან.