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

Функция tls.X509KeyPair

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

Синтаксис

tls.X509KeyPair(certPEM, keyPEM []byte) (tls.Certificate, error)

Пример с самоподписанным сертификатом

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

package main import ( "crypto/tls" "fmt" "log" ) func main() { // PEM-кодированный сертификат (пример) certPEM := []byte(`-----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiUMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX aWRnaXRzIFB0eSBMdGQwHhcNMjQwMTAxMDAwMDAwWhcNMjUwMTAxMDAwMDAwWjBF MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAu7q5n4P5x8q7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7 n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7 n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7 n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 QIDAQABo1AwTjAdBgNVHQ4EFgQUx8n7v9m7n8v9m7n8v9m7n8v9m7n8wHwYDVR0j BBgwFoAUx8n7v9m7n8v9m7n8v9m7n8v9m7n8wDAYDVR0TBAUwAwEB/zANBgkqhkiG 9w0BAQsFAAOCAQEAx8n7v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 -----END CERTIFICATE-----`) // PEM-кодированный приватный ключ (пример) keyPEM := []byte(`-----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAu7q5n4P5x8q7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7 n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 -----END RSA PRIVATE KEY-----`) // Загружаем пару сертификат-ключ cert, err := tls.X509KeyPair(certPEM, keyPEM) if err != nil { log.Fatal(err) } // Проверяем, что сертификат загружен fmt.Printf("Certificate loaded: %v\n", cert.Certificate != nil) }

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

"Certificate loaded: true"

Пример с использованием в TLS-конфигурации

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

<~show~> <+go+> package main import ( "crypto/tls" "fmt" "log" ) func main() { // PEM-кодированный сертификат certPEM := []byte(`-----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiUMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX aWRnaXRzIFB0eSBMdGQwHhcNMjQwMTAxMDAwMDAwWhcNMjUwMTAxMDAwMDAwWjBF MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAu7q5n4P5x8q7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7 n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7 n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7 n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 QIDAQABo1AwTjAdBgNVHQ4EFgQUx8n7v9m7n8v9m7n8v9m7n8v9m7n8wHwYDVR0j BBgwFoAUx8n7v9m7n8v9m7n8v9m7n8v9m7n8wDAYDVR0TBAUwAwEB/zANBgkqhkiG 9w0BAQsFAAOCAQEAx8n7v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 -----END CERTIFICATE-----`) keyPEM := []byte(`-----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAu7q5n4P5x8q7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7 n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8 v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m 7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9m7n8v9
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить