What version of Go are you using (go version)?
$ go version
go version devel +45e9c5538b Tue Nov 13 17:16:48 2018 +0000 linux/amd64
Does this issue reproduce with the latest release?
Nope, it's okay in release. It only repros with tip.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/travis/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/travis/gopath"
GOPROXY=""
GORACE=""
GOROOT="/home/travis/.gimme/versions/go"
GOTMPDIR=""
GOTOOLDIR="/home/travis/.gimme/versions/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build882726140=/tmp/go-build -gno-record-gcc-switches"
What did you do?
I have a test case that is verifying that a TLS client that uses a bad cert (either no cert, when server requires one, or an expired cert or one issued by untrusted CA) gets rejected by the server during a TLS handshake.
I've distilled it down to this test: fullstorydev/grpcurl#68
What did you expect to see?
Server should have rejected the client due to bad certificate.
This is what happens in every other Go version that I tested: https://travis-ci.org/fullstorydev/grpcurl/builds/454615565
What did you see instead?
Server accepted the client.
If I set MaxVersion on the server's tls.Config to tls.VersionTLS12 then things work as expected. So this appears to be related to the new TLS 1.3 work that landed yesterday.
FYI: @FiloSottile
What version of Go are you using (
go version)?Does this issue reproduce with the latest release?
Nope, it's okay in release. It only repros with tip.
What operating system and processor architecture are you using (
go env)?go envOutputWhat did you do?
I have a test case that is verifying that a TLS client that uses a bad cert (either no cert, when server requires one, or an expired cert or one issued by untrusted CA) gets rejected by the server during a TLS handshake.
I've distilled it down to this test: fullstorydev/grpcurl#68
What did you expect to see?
Server should have rejected the client due to bad certificate.
This is what happens in every other Go version that I tested: https://travis-ci.org/fullstorydev/grpcurl/builds/454615565
What did you see instead?
Server accepted the client.
If I set
MaxVersionon the server'stls.Configtotls.VersionTLS12then things work as expected. So this appears to be related to the new TLS 1.3 work that landed yesterday.FYI: @FiloSottile