package main
import (
"log"
"net/http"
)
func handler(w http.ResponseWriter, req *http.Request) {
w.Header().Set("Content-Type", "text/plain")
w.Write([]byte("This is an example server.\n"))
}
func main() {
http.HandleFunc("/", handler)
// myserver-private.crt 就是我们刚刚生成的证书
// myserver-private.key 就是我们创建的私钥
err := http.ListenAndServeTLS(":10443", "myserver-private.crt", "myserver-private.key", nil)
log.Fatal(err)
}
1.cacert.pem 上传到我们IE浏览器 受信任根证书颁发机构 那个栏位
2.在我们的hosts文件添加:127.0.0.1 test.com
3.打开IE浏览器方位:https://test.com:10443
使用client 访问我们构建的服务器
package main
import (
"crypto/tls"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
// 跳过https 验证
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
client := &http.Client{Transport: tr}
resp, err := client.Get("https://test.com:10443")
if err != nil {
fmt.Println("error:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}