package main import ( "crypto/tls" "crypto/x509" "fmt" "io/ioutil" "log" ) func main() { ca, err := ioutil.ReadFile("ca.pem") if err != nil { log.Fatal(err) } roots := x509.NewCertPool() if ok := roots.AppendCertsFromPEM([]byte(ca)); !ok { log.Fatal("failed to parse root certificate") } conn, err := tls.Dial("tcp", "ownme.ipredator.se:https", &tls.Config{ RootCAs: roots, }) if err != nil { log.Fatal(err) } defer conn.Close() if err := conn.Handshake(); err != nil { log.Fatal(err) } body, err := ioutil.ReadAll(conn) if err != nil { log.Fatal(err) } fmt.Println(string(body)) }