Back to questions
Selectel
Senior
4
Как работает HTTPS и TLS? Что такое сертификат и как браузер его проверяет?
Companies where asked
Answer from AI
sobes.tech AI
HTTPS — это расширение HTTP с использованием протокола TLS (Transport Layer Security) для шифрования данных между клиентом и сервером. TLS обеспечивает конфиденциальность, целостность и аутентификацию.
Работа HTTPS/TLS:
- Клиент инициирует соединение с сервером.
- Сервер отправляет свой цифровой сертификат, который содержит публичный ключ и информацию о сервере, подписанную центром сертификации (CA).
- Клиент проверяет сертификат: проверяет подпись CA, срок действия, соответствие домену.
- Если сертификат валиден, клиент и сервер договариваются о параметрах шифрования и устанавливают общий секрет (например, через обмен ключами).
- Все последующие данные шифруются с использованием этого секрета.
Сертификат — это электронный документ, подтверждающий принадлежность публичного ключа конкретному субъекту (серверу). Он подписан доверенным центром сертификации, что гарантирует его подлинность.
Проверка сертификата браузером:
- Проверяется цепочка сертификатов до доверенного корневого CA.
- Проверяется срок действия сертификата.
- Проверяется, что доменное имя в сертификате совпадает с адресом сайта.
- Проверяется, не отозван ли сертификат (через CRL или OCSP).
Пример на Go для HTTPS сервера:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, HTTPS!"))
})
err := http.ListenAndServeTLS(":443", "server.crt", "server.key", nil)
if err != nil {
log.Fatal(err)
}