Como é feita a transmissão de certificados durante o estabelecimento de uma conexão HTTPS?
sobes.tech IA
Resposta da IA
Durante o estabelecimento de uma ligação HTTPS, ocorre um aperto de mão TLS, durante o qual o servidor envia o seu certificado ao cliente. Este certificado contém a chave pública do servidor e confirma a sua autenticidade, assinada por uma autoridade de certificação (CA). O cliente verifica o certificado para garantir que é válido e corresponde ao domínio esperado.
Em Go, utiliza-se o pacote crypto/tls para trabalhar com HTTPS. Ao estabelecer a ligação, o servidor envia automaticamente o seu certificado se estiver configurado em tls.Config.
Exemplo de configuração de um servidor HTTPS em Go:
package main
import (
"crypto/tls"
"log"
"net/http"
)
func main() {
srv := &http.Server{
Addr: ":443",
TLSConfig: &tls.Config{
// O certificado e a chave são carregados automaticamente ao iniciar o servidor
},
}
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello HTTPS"))
})
log.Fatal(srv.ListenAndServeTLS("server.crt", "server.key"))
}
Aqui, ListenAndServeTLS carrega automaticamente o certificado e a chave e, durante o aperto de mão TLS, envia o certificado ao cliente.