Как получить jwk с помощью сертификата - PullRequest
0 голосов
/ 18 июня 2020

У меня есть 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))

Большое спасибо !!!

...