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))
}