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.