Go TCP服务器中的X509服务器身份验证

Go TCP服务器中的X509服务器身份验证,go,server,x509certificate,x509,x509certificate2,Go,Server,X509certificate,X509,X509certificate2,我正在使用以下C代码: netStream = new SslStream(client.GetStream(), false); var cert = new X509Certificate2("mycert.pfx", "123456"); netStream.AuthenticateAsServer(cert); 如果服务器在Golang中使用TCP协议,那么X509服务器身份验证的等效性是什么 这是我目前使用的Golang代码: func main() { l, err :=

我正在使用以下C代码:

netStream = new SslStream(client.GetStream(), false);
var cert = new X509Certificate2("mycert.pfx", "123456");
netStream.AuthenticateAsServer(cert);
如果服务器在Golang中使用TCP协议,那么X509服务器身份验证的等效性是什么

这是我目前使用的Golang代码:

func main() {
    l, err := net.Listen("tcp", ":42127")
    if err != nil {
        fmt.Println("Error listening:", err.Error())
        os.Exit(1)
    }

    defer l.Close()

    for {
        conn, err := l.Accept()
        if err != nil {
            fmt.Println("Error accepting: ", err.Error())
            os.Exit(1)
        }

        go handleRequest(conn)
    }
}

func handleRequest(conn net.Conn) {
    buf := make([]byte, 1024 * 8)

    reqLen, err := conn.Read(buf)
    if err != nil {
        fmt.Println("Error reading:", err.Error())
    }

    conn.Write([]byte("Message received."))
    conn.Close()
}

您是否确实尝试过使用tls软件包?请注意,Go库需要PEM编码的证书和密钥。试试看?@holys比这更简单: