diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/Certificate.java b/acme4j-client/src/main/java/org/shredzone/acme4j/Certificate.java index bdfaf658..431041d8 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/Certificate.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/Certificate.java @@ -59,6 +59,7 @@ public class Certificate extends AcmeResource { private @Nullable List certChain; private @Nullable Collection alternates; private transient @Nullable RenewalInfo renewalInfo = null; + private transient @Nullable List alternateCerts = null; protected Certificate(Login login, URL certUrl) { super(login, certUrl); @@ -124,10 +125,13 @@ public class Certificate extends AcmeResource { * @since 2.11 */ public List getAlternateCertificates() { - var login = getLogin(); - return getAlternates().stream() - .map(login::bindCertificate) - .collect(toUnmodifiableList()); + if (alternateCerts == null) { + var login = getLogin(); + alternateCerts = getAlternates().stream() + .map(login::bindCertificate) + .collect(toUnmodifiableList()); + } + return alternateCerts; } /**