test: generate tls cert/key in test

This commit is contained in:
James Houlahan
2020-08-03 09:24:39 +02:00
parent da381130a3
commit 7e6d09a247
3 changed files with 14 additions and 4 deletions

View File

@ -64,7 +64,7 @@ func GetTLSConfig(cfg tlsConfiger) (tlsConfig *tls.Config, err error) {
tlsConfig, err = loadTLSConfig(certPath, keyPath)
if err != nil {
log.WithError(err).Warn("Cannot load cert, generating a new one")
tlsConfig, err = generateTLSConfig(certPath, keyPath)
tlsConfig, err = GenerateTLSConfig(certPath, keyPath)
if err != nil {
return
}
@ -126,8 +126,9 @@ func loadTLSConfig(certPath, keyPath string) (tlsConfig *tls.Config, err error)
return
}
// GenerateTLSConfig generates certs and keys at the given filepaths and returns a TLS Config which holds them.
// See https://golang.org/src/crypto/tls/generate_cert.go
func generateTLSConfig(certPath, keyPath string) (tlsConfig *tls.Config, err error) {
func GenerateTLSConfig(certPath, keyPath string) (tlsConfig *tls.Config, err error) {
priv, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
err = fmt.Errorf("failed to generate private key: %s", err)

View File

@ -43,7 +43,7 @@ func TestTLSKeyRenewal(t *testing.T) {
// Put old key there.
tlsTemplate.NotBefore = time.Now().Add(-365 * 24 * time.Hour)
tlsTemplate.NotAfter = time.Now()
cert, err := generateTLSConfig(certPath, keyPath)
cert, err := GenerateTLSConfig(certPath, keyPath)
require.Equal(t, err, ErrTLSCertExpireSoon)
require.Equal(t, len(cert.Certificates), 1)
time.Sleep(time.Second)