Skip to content

Commit

Permalink
Merge pull request #152 from stlaz/reload_serving_cert
Browse files Browse the repository at this point in the history
Bug 1801573: Reload serving certs
  • Loading branch information
openshift-merge-robot committed Feb 12, 2020
2 parents 52dc5bb + f9d15a9 commit 3d0621e
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions http.go
@@ -1,13 +1,16 @@
package main

import (
"context"
"crypto/tls"
"log"
"net"
"net/http"
"strings"
"time"

"k8s.io/apiserver/pkg/server/dynamiccertificates"

oscrypto "github.com/openshift/library-go/pkg/crypto"

"github.com/openshift/oauth-proxy/util"
Expand Down Expand Up @@ -75,11 +78,19 @@ func (s *Server) ServeHTTPS() {
}

var err error
config.Certificates = make([]tls.Certificate, 1)
config.Certificates[0], err = tls.LoadX509KeyPair(s.Opts.TLSCertFile, s.Opts.TLSKeyFile)
servingCertProvider, err := dynamiccertificates.NewDynamicServingContentFromFiles("serving", s.Opts.TLSCertFile, s.Opts.TLSKeyFile)
if err != nil {
log.Fatalf("FATAL: loading tls config (%s, %s) failed - %s", s.Opts.TLSCertFile, s.Opts.TLSKeyFile, err)
}
go servingCertProvider.Run(1, context.TODO().Done())

config.GetCertificate = func(_ *tls.ClientHelloInfo) (*tls.Certificate, error) {
// this disregards information from ClientHello but we're not doing SNI anyway
cert, key := servingCertProvider.CurrentCertKeyContent()

certKeyPair, err := tls.X509KeyPair(cert, key)
return &certKeyPair, err
}

if len(s.Opts.TLSClientCAFile) > 0 {
config.ClientAuth = tls.RequestClientCert
Expand Down

0 comments on commit 3d0621e

Please sign in to comment.