I've tested it against LE Staging & LE Live successfully.
Implementation details
The getCertificate() method in the Client class has been updated to handle cases where the certificate is not immediately available and retries fetching the certificate until it becomes valid.
This also introduces a new (private) method getCertificateChain() in the Client class, which is used to fetch the certificate chain from the ACME API to avoid implementing the same code multiple times.
Additionally, the Order class has been updated to include the new certificate property and a corresponding getCertificate() getter method.
Desc
This fixes issue #63, which is due to the following (partially planned) change at the ACME server implementation level: https://community.letsencrypt.org/t/enabling-asynchronous-order-finalization/193522
Tests
I've tested it against LE Staging & LE Live successfully.
Implementation details
The
getCertificate()
method in theClient
class has been updated to handle cases where the certificate is not immediately available and retries fetching the certificate until it becomes valid. This also introduces a new (private) methodgetCertificateChain()
in theClient
class, which is used to fetch the certificate chain from the ACME API to avoid implementing the same code multiple times. Additionally, theOrder
class has been updated to include the newcertificate
property and a correspondinggetCertificate()
getter method.