Skip to content

Commit cde2af2

Browse files
Merge pull request #422 from howardjohn/fix/alpn
fix: expose ALPN in TLS handshake
2 parents 6be882f + e5bdecf commit cde2af2

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

pkg/tls/tls.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,8 +427,11 @@ func (p *Provider) fetchCertificate(ctx context.Context) (time.Time, error) {
427427
p.tlsConfig = &tls.Config{
428428
MinVersion: tls.VersionTLS12,
429429
Certificates: []tls.Certificate{tlsCert},
430-
ClientAuth: tls.VerifyClientCertIfGiven,
431-
ClientCAs: peerCertVerifier.GetGeneralCertPool(),
430+
// Advertise ALPN, required in modern gRPC versions
431+
// Typically gRPC sets this for us, but since this tls.Config ultimately gets returned in GetConfigForClient it doesn't.
432+
NextProtos: []string{"h2"},
433+
ClientAuth: tls.VerifyClientCertIfGiven,
434+
ClientCAs: peerCertVerifier.GetGeneralCertPool(),
432435
VerifyPeerCertificate: func(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error {
433436
err := peerCertVerifier.VerifyPeerCert(rawCerts, verifiedChains)
434437
if err != nil {

0 commit comments

Comments
 (0)