我正在創建一個 Go TCP 服務器(不是 http/s)并且我正在嘗試將其配置為使用 SSL。我有一個 StartCom 免費 SSL 證書,我正試圖用它來實現這一點。我的服務器代碼如下所示: cert, err := tls.LoadX509KeyPair("example.com.pem", "example.com.key") if err != nil { fmt.Println("Error loading certificate. ",err) } trustCert, err := ioutil.ReadFile("sub.class1.server.ca.pem") if err != nil { fmt.Println("Error loading trust certificate. ",err) } validationCert, err := ioutil.ReadFile("ca.pem") if err != nil { fmt.Println("Error loading validation certificate. ",err) } certs := x509.NewCertPool() if !certs.AppendCertsFromPEM(validationCert) { fmt.Println("Error installing validation certificate.") } if !certs.AppendCertsFromPEM(trustCert) { fmt.Println("Error installing trust certificate.") } sslConfig := tls.Config{RootCAs: certs,Certificates: []tls.Certificate{cert}} service := ":5555" tcpAddr, error := net.ResolveTCPAddr("tcp", service) if error != nil { fmt.Println("Error: Could not resolve address") } else { netListen, error := tls.Listen(tcpAddr.Network(), tcpAddr.String(), &sslConfig) if error != nil { fmt.Println(error) } else { defer netListen.Close() for { fmt.Println("Waiting for clients") connection, error := netListen.Accept()我試過切換證書的順序,不包括一些證書等,但輸出openssl s_client -CApath /etc/ssl/certs/ -connect localhost:5555基本上保持不變,verify error:num=20:unable to get local issuer certificate. 有關完整輸出,請參見此處。我似乎對中間證書做錯了什么,但我不知道是什么。我已經為此工作了幾天,進行了大量的谷歌搜索和搜索,但似乎沒有什么適合我的情況。我已經在 Apache 和 HAProxy 中設置了許多證書,但這確實讓我感到困惑。
1 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
該RootCAs字段用于客戶端驗證服務器證書。我假設您只想提供一個證書進行驗證,因此您需要的任何內容都應該加載到Certificates切片中。
這是一個最小的例子:
cert, err := tls.LoadX509KeyPair("example.com.pem", "example.com.key")
if err != nil {
log.Fatal("Error loading certificate. ", err)
}
tlsCfg := &tls.Config{Certificates: []tls.Certificate{cert}}
listener, err := tls.Listen("tcp4", "127.0.0.1:5555", tlsCfg)
if err != nil {
log.Fatal(err)
}
defer listener.Close()
for {
log.Println("Waiting for clients")
conn, err := listener.Accept()
if err != nil {
log.Fatal(err)
}
go handle(conn)
}
即使您沒有使用 HTTPS,從http.ListenAndServeTLS.
- 1 回答
- 0 關注
- 456 瀏覽
添加回答
舉報
0/150
提交
取消