Hoe wordt de overdracht van certificaten uitgevoerd tijdens het tot stand brengen van een HTTPS-verbinding?
sobes.tech AI
Antwoord van AI
Tijdens het tot stand brengen van een HTTPS-verbinding vindt een TLS-handshake plaats, waarbij de server zijn certificaat naar de client stuurt. Dit certificaat bevat de openbare sleutel van de server en bevestigt de echtheid ervan, ondertekend door een certificeringsautoriteit (CA). De client controleert het certificaat om zeker te zijn dat het geldig is en overeenkomt met het verwachte domein.
In Go wordt de crypto/tls-package gebruikt voor het werken met HTTPS. Bij het tot stand brengen van de verbinding stuurt de server automatisch zijn certificaat als het is geconfigureerd in tls.Config.
Voorbeeld van het configureren van een HTTPS-server in Go:
package main
import (
"crypto/tls"
"log"
"net/http"
)
func main() {
srv := &http.Server{
Addr: ":443",
TLSConfig: &tls.Config{
// Het certificaat en de sleutel worden automatisch geladen bij het starten van de server
},
}
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello HTTPS"))
})
log.Fatal(srv.ListenAndServeTLS("server.crt", "server.key"))
}
Hier laadt ListenAndServeTLS automatisch het certificaat en de sleutel en stuurt het certificaat tijdens de TLS-handshake naar de client.