I suspect you may have misunderstood what a "CA Certificate" is. It's not
the Certificate Signing Request (CSR) that you created for your own public
key. It's the public key of the certificate authority which signed the
server's certificate (i.e. google.com).
However, since google.com is signed by one of the standard public CAs, you
don't need to specify a CA certificate at all, and it will use your
system's default set of root CAs.
The following variation of your code works for me. I removed the client
cert/key as well, since google doesn't require you to present a client cert.
package main
import (
"fmt"
//log "github.com/sirupsen/logrus"
"github.com/valyala/fasthttp"
"crypto/tls"
//"crypto/x509"
//"io/ioutil"
)
func req(method string, url string, data []byte) (int, []byte) {
// Setup HTTPS client
tlsConfig := &tls.Config{
Certificates: []tls.Certificate{},
}
req := fasthttp.AcquireRequest()
req.SetRequestURI(url)
req.Header.SetMethod(method)
req.SetBody(data)
resp := fasthttp.AcquireResponse()
client := &fasthttp.Client{
TLSConfig: tlsConfig,
}
client.Do(req, resp)
statusCode := resp.StatusCode()
body := resp.Body()
return statusCode, body
}
func main(){
a, b := req("GET", "https://google.com", nil)
fmt.Printf(string(b))
fmt.Println(a)
}
The result:
<HTML><HEAD><meta http-equiv="content-type"
content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>
301
(and if you change https://google.com to https://www.google.com then you
get the search page)
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/ac90bbe8-9546-4ed7-b2f1-643d07d24abco%40googlegroups.com.