Почему я получаю ошибку 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()