From 9ec619a380cbe25a9455c7ab4df53e2accc68c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20Le=C3=9Fmann=20=28=40MarkL4YG=29?= Date: Sun, 17 Nov 2024 21:05:43 +0100 Subject: [PATCH] fix: Use correct formatting for alt_names --- .../openssl/OpenSSLCertificateCreator.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/mlessmann/certassist/openssl/OpenSSLCertificateCreator.java b/src/main/java/de/mlessmann/certassist/openssl/OpenSSLCertificateCreator.java index 5e02359..7f12ce7 100644 --- a/src/main/java/de/mlessmann/certassist/openssl/OpenSSLCertificateCreator.java +++ b/src/main/java/de/mlessmann/certassist/openssl/OpenSSLCertificateCreator.java @@ -13,6 +13,8 @@ import java.util.Optional; import java.util.concurrent.ExecutionException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.springframework.lang.Nullable; import org.springframework.stereotype.Service; @@ -157,11 +159,15 @@ public class OpenSSLCertificateCreator { .map(CertificateRequestExtension::getAlternativeNames) .orElse(List.of()); if (!altNames.isEmpty()) { - String altNamesContent = String.join("\n", altNames); - extContent = extContent.replaceAll("\\[alt_names]\n?, ", "[alt_names]\n" + altNamesContent); + AtomicInteger counter = new AtomicInteger(1); + String altNamesContent = altNames + .stream() + .map(name -> "DNS.%d = %s".formatted(counter.getAndIncrement(), name)) + .collect(Collectors.joining("\n")); + extContent = extContent.replaceAll("\\[alt_names]\n?", "[alt_names]\n" + altNamesContent); } else { extContent = extContent.replaceAll("\\s*subjectAltName\\s+=\\s+@alt_names\n?", ""); - extContent = extContent.replaceAll("\\[alt_names]\n?, ", ""); + extContent = extContent.replaceAll("\\[alt_names]\n?", ""); } log.debug("Writing extension file content: \n {}", extContent);