Sobes.tech
Junior — Middle

Ako sa vykonáva prenos certifikátov počas nadväzovania HTTPS spojenia?

sobes.tech AI

Odpoveď od AI

Počas nadväzovania HTTPS spojenia prebieha TLS handshake, počas ktorého server odošle svoj certifikát klientovi. Tento certifikát obsahuje verejný kľúč servera a potvrdzuje jeho pravosť, podpísaný certifikačnou autoritou (CA). Klient overí certifikát, aby sa uistil, že je platný a zodpovedá očakávanému doménovému menu.

V Go sa na prácu s HTTPS používa balík crypto/tls. Pri nadväzovaní spojenia server automaticky odošle svoj certifikát, ak je nakonfigurovaný v tls.Config.

Príklad konfigurácie HTTPS servera v Go:

package main

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

func main() {
    srv := &http.Server{
        Addr: ":443",
        TLSConfig: &tls.Config{
            // Certifikát a kľúč sa načítajú automaticky pri spustení servera
        },
    }

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

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

Tu ListenAndServeTLS automaticky načíta certifikát a kľúč a počas TLS handshake ho odošle klientovi.