Sobes.tech
Junior — Middle

Как се осъществява предаването на сертификати по време на установяване на HTTPS връзка?

sobes.tech AI

Отговор от AI

По време на установяване на HTTPS връзка се извършва TLS ръкостискане, при което сървърът изпраща своя сертификат на клиента. Този сертификат съдържа публичния ключ на сървъра и потвърждава неговата автентичност, подписан от център за сертифициране (CA). Клиентът проверява сертификата, за да се увери, че е валиден и съответства на очаквания домейн.

В Go се използва пакетът crypto/tls за работа с HTTPS. При установяване на връзката сървърът автоматично изпраща своя сертификат, ако е конфигуриран в 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 ръкостискането изпраща сертификата на клиента.