Как добавить сертификат PKI в запрос HTTP Go? - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь добавить сертификат PKI в HTTP-клиент, чтобы все запросы, сделанные им, аутентифицировались в службах, с которыми они общаются.Я могу создать экземпляр HTTP-клиента, выполнив:

client := &http.Client{
    Transport: &http.Transport{
        Proxy:                 http.ProxyFromEnvironment,
        TLSClientConfig: &tls.Config{
            // TLS Implementation
        }
    }
}

. Используется реализация по умолчанию RoundTripper, которая включает раздел конфигурации TLS.Однако конфигурация TLS, кажется, разделена между клиентом и сервером.Какие из этих настроек мне нужно добавить, чтобы я мог вызывать другие службы PKI?

1 Ответ

0 голосов
/ 14 декабря 2018

Похоже, нужно только добавить атрибут Certificates в конфигурацию TLS:

Certificates: []tls.Certificate{cert}

Где cert можно создать с помощью вспомогательной функции:

cert, err := tls.LoadX509KeyPair(*certFile, *keyFile)

Где certFile и keyFile - это две строки, которые указывают на pem файлы на диске.Как упоминал Питер, вы также можете реализовать GetClientCertificate, но это не нужно для реализации поддержки PKI.

...