У меня есть 2 вида сертификатов: 1 - root ca (PEM), 2 - machine ca (PEM). Моя цель - извлечь publi c ключ из jwk (что я знаю, но получаю ошибку тайм-аута ..)
перед использованием сертификатов, которые я использовал:
//url contains url to get jwks
jwk.FetchHTTP(url)
I также пробовали загрузить 2 pems и использовать http-клиент.
caCert, err := ioutil.ReadFile("/etc/ssl/ca1.pem")
if err != nil {
return nil, err
}
maCert, err := ioutil.ReadFile("/etc/ssl/ca2.pem")
if err != nil {
return nil, err
}
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)
caCertPool.AppendCertsFromPEM(maCert)
conf := tls.Config{
RootCAs: caCertPool,
InsecureSkipVerify: true,
}
conf.BuildNameToCertificate()
client := &http.Client{
Transport: &http.Transport{
TLSClientConfig: &conf,
},
Timeout: time.Second * 10,
}
resp, err := client.Get(url)
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
return jwk.ParseString(string(body))
Большое спасибо !!!