Sobes.tech
Junior — Middle

Cum se realizează transmiterea certificatelor în timpul stabilirii conexiunii HTTPS?

sobes.tech AI

Răspuns de la AI

În timpul stabilirii conexiunii HTTPS, are loc o strângere de mână TLS, în cadrul căreia serverul trimite certificatul său către client. Acest certificat conține cheia publică a serverului și confirmă autenticitatea sa, semnată de o autoritate de certificare (CA). Clientul verifică certificatul pentru a se asigura că este valid și corespunde domeniului așteptat.

În Go, se folosește pachetul crypto/tls pentru a lucra cu HTTPS. La stabilirea conexiunii, serverul trimite automat certificatul său dacă este configurat în tls.Config.

Exemplu de configurare a unui server HTTPS în Go:

package main

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

func main() {
    srv := &http.Server{
        Addr: ":443",
        TLSConfig: &tls.Config{
            // Certificatul și cheia sunt încărcate automat la pornirea serverului
        },
    }

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

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

Aici, ListenAndServeTLS încarcă automat certificatul și cheia și, în timpul strângerii de mână TLS, trimite certificatul către client.