Почему я получаю ошибку TLS негабаритной записи?
Я пытаюсь использовать go-xmpp
подключиться к услуги XMPP DuckDuckGo.
ниже мой тест-кейсов:
package main
import (
"crypto/tls"
"log"
"github.com/mattn/go-xmpp"
)
const (
svr = "dukgo.com"
usr = "testtesttest"
pwd = "test123"
)
func main() {
xmpp.DefaultConfig = tls.Config{
ServerName: svr,
InsecureSkipVerify: false,
}
options := xmpp.Options{
Host: svr,
User: usr,
Password: pwd,
}
_, err := options.NewClient()
if err != nil {
log.Fatal(err)
}
}
на log.Fatal
блок выполняется и возвращает следующее сообщение об ошибке:
2016/08/24 16:32:27 tls: oversized record received with length 28012
exit status 1
Googling ошибка указывает мне на идентичную ошибку в Docker, так что это не совсем полезно. Что означает эта ошибка? Что я могу сделать, чтобы исправить это?
1 ответов
Как пример пакета go-xmpp, который вы используете, он также ожидает порт для tls.
поэтому без него он попытается подключиться к конечной точке HTTP и дать вам эту ошибку. Вы увидите такие ошибки, когда конечная точка поддерживает только HTTP или HTTPS с неизвестным сертификатом CA.
обратите внимание, что пакет, который вы используете, также не поддерживает двойную проверку TLS duckgo XMPP требования и изменить код, чтобы соответствовать им.
другие сообщения, такие как это
пример
https://github.com/mattn/go-xmpp/blob/master/_example/example.go
// Server has the port
var server = flag.String("server", "talk.google.com:443", "server")
var username = flag.String("username", "", "username")
var password = flag.String("password", "", "password")
var status = flag.String("status", "xa", "status")
var statusMessage = flag.String("status-msg", "I for one welcome our new codebot overlords.", "status message")
var notls = flag.Bool("notls", false, "No TLS")
var debug = flag.Bool("debug", false, "debug output")
var session = flag.Bool("session", false, "use server session")
// Omitted code
var talk *xmpp.Client
var err error
options := xmpp.Options{Host: *server,
User: *username,
Password: *password,
NoTLS: *notls,
Debug: *debug,
Session: *session,
Status: *status,
StatusMessage: *statusMessage,
}
talk, err = options.NewClient()