diff --git a/acme4j-it/src/test/java/org/shredzone/acme4j/it/ProviderIT.java b/acme4j-it/src/test/java/org/shredzone/acme4j/it/ProviderIT.java index 5fcc024b..0510aeb7 100644 --- a/acme4j-it/src/test/java/org/shredzone/acme4j/it/ProviderIT.java +++ b/acme4j-it/src/test/java/org/shredzone/acme4j/it/ProviderIT.java @@ -19,6 +19,7 @@ import java.net.MalformedURLException; import java.net.URL; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.shredzone.acme4j.Session; import org.shredzone.acme4j.connector.Resource; @@ -67,7 +68,7 @@ public void testPebble() throws AcmeException, MalformedURLException { } /** - * Test ssl.com + * Test ssl.com, production */ @Test public void testSslCom() throws AcmeException, MalformedURLException { @@ -83,6 +84,18 @@ public void testSslCom() throws AcmeException, MalformedURLException { assertThat(sessionRsa.getMetadata().isExternalAccountRequired()).isTrue(); assertThat(sessionRsa.getMetadata().isAutoRenewalEnabled()).isFalse(); + // If this test fails, the metadata has been fixed on server side. Then remove + // the patch at ZeroSSLAcmeProvider, and update the documentation. + var sessionEABCheck = new Session("https://acme.ssl.com/sslcom-dv-ecc"); + assertThat(sessionEABCheck.getMetadata().isExternalAccountRequired()).isFalse(); + } + + /** + * Test ssl.com, staging server + */ + @Test + @Disabled("Instable due to frequent certificate expiration of acme-try.ssl.com") + public void testSslComStaging() throws AcmeException, MalformedURLException { var sessionEccStage = new Session("acme://ssl.com/staging/ecc"); assertThat(sessionEccStage.getMetadata().getWebsite()).hasValue(new URL("https://www.ssl.com")); assertThatNoException().isThrownBy(() -> sessionEccStage.resourceUrl(Resource.NEW_ACCOUNT)); @@ -95,10 +108,8 @@ public void testSslCom() throws AcmeException, MalformedURLException { assertThat(sessionRsaStage.getMetadata().isExternalAccountRequired()).isTrue(); assertThat(sessionRsaStage.getMetadata().isAutoRenewalEnabled()).isFalse(); - // If these tests fail, the metadata have been fixed on server side. Then remove + // If this test fails, the metadata has been fixed on server side. Then remove // the patch at ZeroSSLAcmeProvider, and update the documentation. - var sessionEABCheck = new Session("https://acme.ssl.com/sslcom-dv-ecc"); - assertThat(sessionEABCheck.getMetadata().isExternalAccountRequired()).isFalse(); var sessionEABCheckStage = new Session("https://acme-try.ssl.com/sslcom-dv-ecc"); assertThat(sessionEABCheckStage.getMetadata().isExternalAccountRequired()).isFalse(); } diff --git a/pom.xml b/pom.xml index 38520326..640242b6 100644 --- a/pom.xml +++ b/pom.xml @@ -55,6 +55,7 @@ 4.5.14 2.0.1 0.9.6 + 5.10.2 2.0.13 utf-8 utf-8 @@ -189,13 +190,19 @@ org.junit.jupiter junit-jupiter-api - 5.10.2 + ${junit.version} test org.junit.jupiter junit-jupiter-params - 5.10.2 + ${junit.version} + test + + + org.junit.jupiter + junit-jupiter-engine + ${junit.version} test diff --git a/src/doc/docs/ca/sslcom.md b/src/doc/docs/ca/sslcom.md index 7fcd537d..aec2c2a5 100644 --- a/src/doc/docs/ca/sslcom.md +++ b/src/doc/docs/ca/sslcom.md @@ -2,7 +2,7 @@ Web site: [SSL.com](https://ssl.com) -Available since acme4j 3.2.0 +Available since acme4j 3.2.0. **This provider is experimental!** ## Connection URIs @@ -14,6 +14,7 @@ Available since acme4j 3.2.0 ## Note * This CA requires [External Account Binding (EAB)](../usage/account.md#external-account-binding) for account creation. However, the CA's directory resource returns `externalAccountRequired` as `false`, which is incorrect. If you use one of the `acme:` URIs above, _acme4j_ will patch the metadata transparently. If you directly connect to SSL.com via `https:` URI though, `Metadata.isExternalAccountRequired()` could return a wrong value. (As of February 2024) +* The certificate of the ssl.com staging server seems to be unmonitored. When it expires, an `AcmeNetworkException` is thrown which is caused by a `CertificateExpiredException`. There is nothing you can do to fix this error, except to ask the ssl.com support to renew the expired certificate on their server. **Please do not open an issue at acme4j.** (As of June 2024) ## Disclaimer