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

Функция tls.Dial

Функция tls.Dial устанавливает TLS-соединение с указанным сетевым адресом. В первый параметр передается сеть (например, "tcp"), во второй параметр передается адрес сервера (например, "example.com:443"), в третий параметр передается конфигурация TLS (*tls.Config). Функция возвращает соединение типа *tls.Conn и ошибку.

Синтаксис

conn, err := tls.Dial(network, address, config)

Пример

Давайте установим TLS-соединение с сервером "example.com" через порт 443 и выведем информацию о соединении:

package main import ( "crypto/tls" "fmt" "log" ) func main() { // Создаем конфигурацию TLS config := &tls.Config{ InsecureSkipVerify: true, // Только для примера } // Устанавливаем соединение conn, err := tls.Dial("tcp", "example.com:443", config) if err != nil { log.Fatal(err) } defer conn.Close() // Выводим состояние соединения state := conn.ConnectionState() fmt.Printf("TLS version: %d\n", state.Version) fmt.Printf("Cipher suite: %d\n", state.CipherSuite) }

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

"TLS version: 771" "Cipher suite: 4865"

Пример

Давайте установим TLS-соединение с проверкой сертификата сервера на домене "google.com" и выполним простой HTTP-запрос:

package main import ( "crypto/tls" "fmt" "log" "time" ) func main() { // Настраиваем конфигурацию config := &tls.Config{ ServerName: "google.com", } // Устанавливаем соединение conn, err := tls.Dial("tcp", "google.com:443", config) if err != nil { log.Fatal(err) } defer conn.Close() // Отправляем GET-запрос request := "GET / HTTP/1.1\r\n" + "Host: google.com\r\n" + "Connection: close\r\n" + "\r\n" _, err = conn.Write([]byte(request)) if err != nil { log.Fatal(err) } // Читаем ответ с таймаутом conn.SetReadDeadline(time.Now().Add(5 * time.Second)) buffer := make([]byte, 1024) n, err := conn.Read(buffer) if err != nil { log.Fatal(err) } fmt.Println(string(buffer[:n])) }

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

"HTTP/1.1 200 OK" "Content-Type: text/html" "Date: ..."

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

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