Функция tls.LoadX509KeyPair

Функция tls.LoadX509KeyPair загружает пару сертификата и закрытого ключа X.509 из указанных файлов. Она возвращает структуру tls.Certificate, которую можно использовать для настройки TLS-соединений. Первым параметром функция принимает путь к файлу сертификата в формате PEM, вторым - путь к файлу закрытого ключа в формате PEM. Если загрузка прошла успешно, функция возвращает сертификат и ошибку nil, иначе - пустую структуру и ошибку.

Синтаксис

gotls.LoadX509KeyPair(certFile, keyFile string) (tls.Certificate, error)

Пример

Давайте загрузим сертификат и ключ из файлов для использования в HTTPS-сервере:

gopackage main

import (
  "crypto/tls"
  "fmt"
  "log"
)

func main() {
  cert, err := tls.LoadX509KeyPair("server.crt", "server.key")
  if err != nil {
    log.Fatal(err)
  }

  fmt.Println("Certificate loaded successfully")
}

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

go"Certificate loaded successfully"

Пример

Используем загруженный сертификат для создания TLS-конфигурации:

gopackage main

import (
  "crypto/tls"
  "fmt"
  "log"
)

func main() {
  cert, err := tls.LoadX509KeyPair("cert.pem", "key.pem")
  if err != nil {
    log.Fatal(err)
  }

  config := &tls.Config{
    Certificates: []tls.Certificate{cert},
  }

  fmt.Printf("Config created with %d certificate(s)", len(config.Certificates))
}

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

go"Config created with 1 certificate(s)"

Пример

Обработаем ошибку при загрузке несуществующих файлов:

gopackage main

import (
  "crypto/tls"
  "fmt"
  "log"
)

func main() {
  cert, err := tls.LoadX509KeyPair("nonexistent.crt", "nonexistent.key")
  if err != nil {
    log.Printf("Failed to load certificate: %v", err)
  }

  fmt.Printf("Certificate: %v", cert)
}

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

go"Failed to load certificate: open nonexistent.crt: no such file or directory"

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

  • функцию tls.X509KeyPair,
    которая загружает сертификат и ключ из байтовых срезов
  • структуру tls.Config,
    которая используется для настройки TLS-соединений
  • структуру tls.Certificate,
    которая представляет пару сертификат-ключ
  • функцию x509.ParseCertificate,
    которая разбирает сертификат X.509 из DER-формата