HTTPS/Client-authenticated: Difference between revisions

Content added Content deleted
(Added Kotlin)
(feat(go): add go implementation)
Line 33: Line 33:
}
}
</lang>
</lang>


=={{header|Go}}==
<lang Go>package main

import (
"crypto/tls"
"io/ioutil"
"log"
"net/http"
)

func main() {

// load key pair
cert, err := tls.LoadX509KeyPair(
"./client.local.tld/client.local.tld.crt",
"./client.local.tld/client.local.tld.key",
)

if err != nil {
log.Fatal("Error while loading x509 key pair", err)
}

// Create TLS Config in order to had client certificate
tlsConfig := &tls.Config{Certificates: []tls.Certificate{cert}}

tlsConfig.BuildNameToCertificate()
transport := &http.Transport{TLSClientConfig: tlsConfig}

// create http client with our custom transport with TLS config
client := &http.Client{Transport: transport}

res, err := client.Get("https://www.example.com/")
if err != nil {
log.Fatal(err)
}
contents, err := ioutil.ReadAll(res.Body)
log.Print(string(contents))

}
</lang>


=={{header|Kotlin}}==
=={{header|Kotlin}}==