Automatically generate CSR in Order class

With this change, it is not stricly required anymore to create the CSR
oneself. The Order class contains all information to generate a basic
CSR itself.
This commit is contained in:
Richard Körber
2023-05-19 10:20:35 +02:00
parent e22b47f140
commit e8b83d6423
6 changed files with 122 additions and 45 deletions

View File

@@ -30,7 +30,6 @@ import org.shredzone.acme4j.challenge.Http01Challenge;
import org.shredzone.acme4j.exception.AcmeException;
import org.shredzone.acme4j.exception.AcmeLazyLoadingException;
import org.shredzone.acme4j.it.BammBammClient;
import org.shredzone.acme4j.util.CSRBuilder;
import org.shredzone.acme4j.util.KeyPairUtils;
/**
@@ -79,12 +78,7 @@ public class OrderHttpIT {
client.httpRemoveToken(challenge.getToken());
}
var csr = new CSRBuilder();
csr.addDomain(TEST_DOMAIN);
csr.sign(domainKeyPair);
var encodedCsr = csr.getEncoded();
order.execute(encodedCsr);
order.execute(domainKeyPair);
await()
.pollInterval(1, SECONDS)

View File

@@ -39,7 +39,6 @@ import org.shredzone.acme4j.challenge.Http01Challenge;
import org.shredzone.acme4j.challenge.TlsAlpn01Challenge;
import org.shredzone.acme4j.exception.AcmeException;
import org.shredzone.acme4j.exception.AcmeServerException;
import org.shredzone.acme4j.util.CSRBuilder;
/**
* Tests a complete certificate order with different challenges.
@@ -179,12 +178,7 @@ public class OrderIT extends PebbleITBase {
assertThat(auth.getStatus()).isEqualTo(Status.VALID);
}
var csr = new CSRBuilder();
csr.addDomain(domain);
csr.sign(domainKeyPair);
var encodedCsr = csr.getEncoded();
order.execute(encodedCsr);
order.execute(domainKeyPair);
await()
.pollInterval(1, SECONDS)

View File

@@ -28,7 +28,6 @@ import org.shredzone.acme4j.AccountBuilder;
import org.shredzone.acme4j.Session;
import org.shredzone.acme4j.Status;
import org.shredzone.acme4j.challenge.Dns01Challenge;
import org.shredzone.acme4j.util.CSRBuilder;
/**
* Tests a complete wildcard certificate order. Wildcard certificates currently only
@@ -95,13 +94,7 @@ public class OrderWildcardIT extends PebbleITBase {
assertThat(auth.getStatus()).isEqualTo(Status.VALID);
}
var csr = new CSRBuilder();
csr.addDomain(TEST_DOMAIN);
csr.addDomain(TEST_WILDCARD_DOMAIN);
csr.sign(domainKeyPair);
var encodedCsr = csr.getEncoded();
order.execute(encodedCsr);
order.execute(domainKeyPair);
await()
.pollInterval(1, SECONDS)
@@ -115,7 +108,10 @@ public class OrderWildcardIT extends PebbleITBase {
assertThat(cert).isNotNull();
assertThat(cert.getNotAfter()).isNotEqualTo(notBefore);
assertThat(cert.getNotBefore()).isNotEqualTo(notAfter);
assertThat(cert.getSubjectX500Principal().getName()).contains("CN=" + TEST_DOMAIN);
assertThat(cert.getSubjectX500Principal().getName()).satisfiesAnyOf(
name -> assertThat(name).contains("CN=" + TEST_DOMAIN),
name -> assertThat(name).contains("CN=" + TEST_WILDCARD_DOMAIN)
);
var san = cert.getSubjectAlternativeNames().stream()
.filter(it -> ((Number) it.get(0)).intValue() == GeneralName.dNSName)