add a test case to regenerate and reload a certificate
This commit is contained in:
parent
f3e2553043
commit
876dadf397
|
|
@ -8,6 +8,7 @@ import (
|
|||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"syscall"
|
||||
|
||||
"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
|
||||
. "github.com/onsi/ginkgo/v2"
|
||||
|
|
@ -835,6 +836,38 @@ var _ = Describe("Server", func() {
|
|||
Expect(resp.TLS.VerifiedChains[0]).Should(HaveLen(1))
|
||||
Expect(resp.TLS.VerifiedChains[0][0].Raw).Should(Equal(ipv4CertData))
|
||||
})
|
||||
|
||||
It("Reloads the certificate on SIGHUP", func() {
|
||||
go func() {
|
||||
defer GinkgoRecover()
|
||||
Expect(srv.Start(ctx)).To(Succeed())
|
||||
}()
|
||||
|
||||
var err error
|
||||
|
||||
ipv4CertData, ipv4CertDataSource.Value, ipv4KeyDataSource.Value, err = generateCert(ipv4Addr)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
ipv6CertData, ipv6CertDataSource.Value, ipv6KeyDataSource.Value, err = generateCert(ipv6Addr)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
ipv4Certificate, err := generateX509Cert(ipv4CertDataSource, ipv4KeyDataSource)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
ipv6Certificate, err := generateX509Cert(ipv6CertDataSource, ipv6KeyDataSource)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
addCertToTransportRootCAs(transport, ipv4Certificate, ipv6Certificate)
|
||||
|
||||
err = syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
resp, err := httpGet(ctx, secureListenAddr)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(resp.StatusCode).To(Equal(http.StatusOK))
|
||||
|
||||
Expect(resp.TLS.VerifiedChains).Should(HaveLen(1))
|
||||
Expect(resp.TLS.VerifiedChains[0]).Should(HaveLen(1))
|
||||
Expect(resp.TLS.VerifiedChains[0][0].Raw).Should(Equal(ipv4CertData))
|
||||
})
|
||||
})
|
||||
|
||||
Context("with a fd ipv4 http and an ipv4 https server", func() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue