Назад к вопросам
Mail.ru
Junior — Middle
78
Как осуществляется передача сертификатов во время установления HTTPS-соединения?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Во время установления HTTPS-соединения происходит TLS-рукопожатие, в рамках которого сервер передаёт клиенту свой сертификат. Этот сертификат содержит публичный ключ сервера и подтверждает его подлинность, подписанную центром сертификации (CA). Клиент проверяет сертификат, убеждаясь, что он действителен и соответствует ожидаемому домену.
В Go для работы с HTTPS используется пакет crypto/tls. При установлении соединения сервер автоматически отправляет свой сертификат, если он настроен в tls.Config.
Пример настройки HTTPS-сервера в Go:
package main
import (
"crypto/tls"
"log"
"net/http"
)
func main() {
srv := &http.Server{
Addr: ":443",
TLSConfig: &tls.Config{
// Сертификат и ключ загружаются автоматически при запуске сервера
},
}
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello HTTPS"))
})
log.Fatal(srv.ListenAndServeTLS("server.crt", "server.key"))
}
Здесь ListenAndServeTLS автоматически загружает сертификат и ключ и во время TLS-рукопожатия отправляет сертификат клиенту.