go 實作 https server POST 介面
參考鏈接:
-
TLS完全指南(一):TLS和安全通信 https://zhuanlan.zhihu.com/p/26684050
-
TLS完全指南(二):OpenSSL操作指南[實際操作失敗] https://zhuanlan.zhihu.com/p/26684071
-
TLS完全指南(三):用Go語言寫HTTPS程式 https://zhuanlan.zhihu.com/p/26684081
-
postman呼叫https介面方式: https://blog.csdn.net/jqc874789596/article/details/90437628
-
Golang 原生實作 HTTPS POST json 請求: https://blog.csdn.net/qq_32828933/article/details/107996039
1. 自簽名證書生成
-
通過 OpenSSL 工具生成自簽名證書:
# Generate CA private key openssl genrsa -out server.key 2048 # Generate CSR openssl req -new -key server.key -out server.csr # Generate Self Signed certificate(CA 根證書) openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

2. https server 實作
-
main.go
package main ? import ( "fmt" "io" "io/ioutil" "log" "net/http" ) ? func postHandler(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() body, err := ioutil.ReadAll(r.Body) if err != nil { log.Fatal("read request error") } fmt.Println("response Body:", string(body)) _, _ = io.WriteString(w, "Success") } ? func main() { http.HandleFunc("/post", postHandler) err := http.ListenAndServeTLS(":4321", "./crt_key/server.crt", "./crt_key/server.key", nil) if err != nil { log.Fatal("listen error:", err.Error()) } }
3. 測驗
方式一:postman
1. 環境:
-
server:CentOS Linux release 7.8.2003 (Core)
-
client:postman
2. postman 設定 CA證書
-
關閉SSL

-
填寫 server資訊,加載CA證書

-
結果如下

3. 結果
-
client

-
server
????
方式二:go 撰寫 client
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/230615.html
標籤:區塊鏈
