Skip to content

Commit bcf413a

Browse files
committed
Internal SANs for db and reportdb are no longer required
1 parent b926336 commit bcf413a

2 files changed

Lines changed: 11 additions & 62 deletions

File tree

mgradm/shared/podman/ssl.go

Lines changed: 9 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func prepareThirdPartyCertificates(
9797
log.Info().Msg(L("Using provided 3rd party database certificates"))
9898
if err := prepareThirdPartyCertificate(
9999
&sslFlags.DB.CA, &sslFlags.DB.SSLPair, shared_podman.DBCASecret,
100-
shared_podman.DBSSLCertSecret, shared_podman.DBSSLKeySecret, fqdn, "db", "reportdb",
100+
shared_podman.DBSSLCertSecret, shared_podman.DBSSLKeySecret, fqdn,
101101
); err != nil {
102102
errs = append(errs, err)
103103
}
@@ -163,10 +163,7 @@ func PrepareSSLCertificates(image string, sslFlags *adm_utils.InstallSSLFlags, t
163163
}
164164

165165
// Generate them all in order to have the same expiration date on both.
166-
return utils.JoinErrors(
167-
generateServerCertificate(image, sslFlags, tz, fqdn),
168-
generateDatabaseCertificate(image, sslFlags, tz, fqdn),
169-
)
166+
return generateServerCertificate(image, sslFlags, tz, fqdn)
170167
}
171168

172169
func validateCA(image string, sslFlags *adm_utils.InstallSSLFlags, tz string) error {
@@ -203,7 +200,6 @@ func reuseExistingCertificates(image string, fqdn string, isDatabaseCheck bool)
203200
if isDatabaseCheck {
204201
secretName = shared_podman.DBSSLCertSecret
205202
caSecretName = shared_podman.DBCASecret
206-
fqdns = append(fqdns, "db", "reportdb")
207203
msg = L("Reusing the existing database certificate secrets")
208204
}
209205
reused = isFQDNMatchingCertificateSecret(secretName, caSecretName, fqdns...)
@@ -422,49 +418,21 @@ func generateServerCertificate(image string, sslFlags *adm_utils.InstallSSLFlags
422418

423419
log.Info().Msg(L("Server SSL certificate generated"))
424420

425-
// Create secret for the database key and certificate
426-
return shared_podman.CreateTLSSecrets(
421+
// Create secret for the server key and certificate
422+
if err := shared_podman.CreateTLSSecrets(
427423
shared_podman.CASecret, path.Join(tempDir, "ca.crt"),
428424
shared_podman.SSLCertSecret, path.Join(tempDir, "server.crt"),
429425
shared_podman.SSLKeySecret, path.Join(tempDir, "server.key"),
430-
)
431-
}
432-
433-
func generateDatabaseCertificate(image string, sslFlags *adm_utils.InstallSSLFlags, tz string, fqdn string) error {
434-
log.Info().Msg(L("Generating the database certificate…"))
435-
// Write the ordered cert and Root CA to temp files
436-
tempDir, cleaner, err := utils.TempDir()
437-
defer cleaner()
438-
if err != nil {
426+
); err != nil {
439427
return err
440428
}
441429

442-
env := map[string]string{
443-
"CERT_O": sslFlags.Org,
444-
"CERT_OU": sslFlags.OU,
445-
"CERT_CITY": sslFlags.City,
446-
"CERT_STATE": sslFlags.State,
447-
"CERT_COUNTRY": sslFlags.Country,
448-
"CERT_EMAIL": sslFlags.Email,
449-
"CERT_CNAMES": strings.Join(append([]string{fqdn}, sslFlags.Cnames...), " "),
450-
"CERT_PASS": sslFlags.Password,
451-
}
452-
if err := runSSLContainer(sslSetupDatabaseScript, tempDir, image, tz, env); err != nil {
453-
return utils.Error(err, L("Failed to generate database SSL certificate"))
454-
}
455-
456-
log.Info().Msg(L("Database SSL certificate generated"))
457-
458430
// Create secret for the database key and certificate
459-
if err := shared_podman.CreateTLSSecrets(
431+
return shared_podman.CreateTLSSecrets(
460432
shared_podman.DBCASecret, path.Join(tempDir, "ca.crt"),
461-
shared_podman.DBSSLCertSecret, path.Join(tempDir, "reportdb.crt"),
462-
shared_podman.DBSSLKeySecret, path.Join(tempDir, "reportdb.key"),
463-
); err != nil {
464-
return err
465-
}
466-
467-
return nil
433+
shared_podman.DBSSLCertSecret, path.Join(tempDir, "server.crt"),
434+
shared_podman.DBSSLKeySecret, path.Join(tempDir, "server.key"),
435+
)
468436
}
469437

470438
const sslSetupServerScript = `
@@ -518,27 +486,6 @@ const sslSetupServerScript = `
518486
cp "/root/ssl-build/$MACHINE_NAME/server.key" /ssl/server.key
519487
`
520488

521-
// This is assuming CA cert is generated by server script.
522-
// If we in any point in the future allow mix of 3rd party server and self signed ca for database
523-
// this will need to be updated to include check for ca cert and build if needed.
524-
const sslSetupDatabaseScript = `
525-
echo "Generating DB certificate..."
526-
cert_args=""
527-
for CERT_CNAME in $CERT_CNAMES; do
528-
cert_args="$cert_args --set-cname $CERT_CNAME"
529-
done
530-
531-
rhn-ssl-tool --gen-server --cert-expiration 3650 \
532-
--dir /root/ssl-build --password "$CERT_PASS" \
533-
--set-country "$CERT_COUNTRY" --set-state "$CERT_STATE" --set-city "$CERT_CITY" \
534-
--set-org "$CERT_O" --set-org-unit "$CERT_OU" \
535-
--cert-expiration 3650 --set-email "$CERT_EMAIL" \
536-
--set-hostname reportdb --set-cname db $cert_args
537-
538-
cp /root/ssl-build/RHN-ORG-TRUSTED-SSL-CERT /ssl/ca.crt
539-
cp /root/ssl-build/reportdb/server.crt /ssl/reportdb.crt
540-
cp /root/ssl-build/reportdb/server.key /ssl/reportdb.key
541-
`
542489
const sslValidateCA = `
543490
CA_KEY=/root/ssl-build/RHN-ORG-PRIVATE-SSL-KEY
544491
CA_PASS_FILE=/ssl/ca_pass
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- Internal SANs for db and reportdb are no longer required
2+
- Generate the same certificate for server and reportdb

0 commit comments

Comments
 (0)