РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1291 of 1593 menu

Тип tls.Config

Тип tls.Config представляет конфигурацию для TLS-соединений. Он позволяет настроить сертификаты, версии протокола, шифры, проверку сертификатов и другие параметры безопасности. Экземпляр tls.Config используется при создании как серверных, так и клиентских TLS-соединений.

Синтаксис

type Config struct { Certificates []Certificate NameToCertificate map[string]*Certificate RootCAs *x509.CertPool InsecureSkipVerify bool MinVersion uint16 MaxVersion uint16 CipherSuites []uint16 ClientAuth ClientAuthType ClientCAs *x509.CertPool ServerName string }

Пример

Создадим базовую конфигурацию для клиентского TLS-соединения с отключенной проверкой сертификата (для тестирования):

package main import ( "crypto/tls" "fmt" ) func main() { config := &tls.Config{ InsecureSkipVerify: true, } fmt.Printf("Config: %+v\n", config) }

Результат выполнения кода:

"Config: &{Certificates:[] NameToCertificate:map[] RootCAs:<nil> InsecureSkipVerify:true MinVersion:0 MaxVersion:0 CipherSuites:[] ClientAuth:0 ClientCAs:<nil> ServerName:}"

Пример

Создадим конфигурацию с указанием минимальной и максимальной версии TLS:

package main import ( "crypto/tls" "fmt" ) func main() { config := &tls.Config{ MinVersion: tls.VersionTLS12, MaxVersion: tls.VersionTLS13, } fmt.Printf("MinVersion: %d, MaxVersion: %d\n", config.MinVersion, config.MaxVersion) }

Результат выполнения кода:

"MinVersion: 771, MaxVersion: 772"

Пример

Настроим серверную конфигурацию с требованием клиентского сертификата:

package main import ( "crypto/tls" "fmt" ) func main() { config := &tls.Config{ ClientAuth: tls.RequireAndVerifyClientCert, } fmt.Printf("ClientAuth: %d\n", config.ClientAuth) }

Результат выполнения кода:

"ClientAuth: 4"

Пример

Загрузим сертификат и ключ для серверной конфигурации:

package main import ( "crypto/tls" "fmt" "log" ) func main() { cert, err := tls.LoadX509KeyPair("server.crt", "server.key") if err != nil { log.Fatal(err) } config := &tls.Config{ Certificates: []tls.Certificate{cert}, } fmt.Printf("Loaded certificate: %s\n", cert.Leaf.Subject) }

Результат выполнения кода:

"Loaded certificate: CN=localhost"

Смотрите также

  • функцию tls.Listen,
    которая создает TLS-сервер
  • функцию tls.Dial,
    которая создает TLS-клиент
  • тип tls.Certificate,
    представляющий TLS-сертификат
  • функцию tls.LoadX509KeyPair,
    которая загружает пару сертификат/ключ из файлов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить