Функция tls.LoadX509KeyPair
Функция tls.LoadX509KeyPair загружает пару сертификата и закрытого ключа
X.509 из указанных файлов. Она возвращает структуру tls.Certificate,
которую можно использовать для настройки TLS-соединений. Первым параметром
функция принимает путь к файлу сертификата в формате PEM, вторым - путь к
файлу закрытого ключа в формате PEM. Если загрузка прошла успешно, функция
возвращает сертификат и ошибку nil, иначе - пустую структуру и ошибку.
Синтаксис
tls.LoadX509KeyPair(certFile, keyFile string) (tls.Certificate, error)
Пример
Давайте загрузим сертификат и ключ из файлов для использования в HTTPS-сервере:
package 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")
}
Результат выполнения кода:
"Certificate loaded successfully"
Пример
Используем загруженный сертификат для создания TLS-конфигурации:
package 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))
}
Результат выполнения кода:
"Config created with 1 certificate(s)"
Пример
Обработаем ошибку при загрузке несуществующих файлов:
package 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)
}
Результат выполнения кода:
"Failed to load certificate: open nonexistent.crt: no such file or directory"
Смотрите также
-
функцию
tls.X509KeyPair,
которая загружает сертификат и ключ из байтовых срезов -
структуру
tls.Config,
которая используется для настройки TLS-соединений -
структуру
tls.Certificate,
которая представляет пару сертификат-ключ -
функцию
x509.ParseCertificate,
которая разбирает сертификат X.509 из DER-формата