go-acme / lego

Let's Encrypt/ACME client and library written in Go
https://go-acme.github.io/lego/
MIT License
7.58k stars 994 forks source link

NIFCLOUD's DNS provider is no longer working since version 4.12.0. #2038

Closed penM000 closed 9 months ago

penM000 commented 9 months ago

Welcome

What did you expect to see?

We expect the certificate to be issued in the same way as it was for 4.11.

What did you see instead?

An error occurred and no certificate was issued.

How do you use lego?

Docker image

Reproduction steps

It will not work if the version is changed to 4.12.0 while it is working with 4.11.

Version of lego

sudo docker run goacme/lego:v4.12.0 --version
lego version 4.12.0 linux/amd64
sudo docker run goacme/lego:v4.11 --version
lego version 4.11.0 linux/amd64

sudo docker run goacme/lego --version
lego version 4.14.2 linux/amd64

Logs

Version when it was working: ``` USER@SERVER:~$ sudo docker run --env NIFCLOUD_ACCESS_KEY_ID=ACCESS_KEY --env NIFCLOUD_SECRET_ACCESS_KEY=SECRET_ACCESS_KEY goacme/lego:v4.11 --dns nifcloud -a --email $MAIL_ADDR --domains $DOMAIN run Unable to find image 'goacme/lego:v4.11' locally v4.11: Pulling from goacme/lego f56be85fc22e: Pull complete 0217dba6f043: Pull complete 73f7d58e19cf: Pull complete Digest: sha256:3fd68437dc0a992b898508f794cffa41f46d2e81331894372a24588b57d8a161 Status: Downloaded newer image for goacme/lego:v4.11 2023/10/18 08:16:30 No key found for account mail@example.com. Generating a P256 key. 2023/10/18 08:16:30 Saved key to /.lego/accounts/acme-v02.api.letsencrypt.org/mail@example.com/keys/mail@example.com.key 2023/10/18 08:16:31 [INFO] acme: Registering account for mail@example.com !!!! HEADS UP !!!! Your account credentials have been saved in your Let's Encrypt configuration directory at "/.lego/accounts". You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained from Let's Encrypt so making regular backups of this folder is ideal. 2023/10/18 08:16:31 [INFO] [main.example.com] acme: Obtaining bundled SAN certificate 2023/10/18 08:16:32 [INFO] [main.example.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxx 2023/10/18 08:16:32 [INFO] [main.example.com] acme: Could not find solver for: tls-alpn-01 2023/10/18 08:16:32 [INFO] [main.example.com] acme: Could not find solver for: http-01 2023/10/18 08:16:32 [INFO] [main.example.com] acme: use dns-01 solver 2023/10/18 08:16:32 [INFO] [main.example.com] acme: Preparing to solve DNS-01 2023/10/18 08:16:34 [INFO] Wait for nifcloud [timeout: 2m0s, interval: 4s] 2023/10/18 08:16:34 [INFO] [main.example.com] acme: Trying to solve DNS-01 2023/10/18 08:16:34 [INFO] [main.example.com] acme: Checking DNS record propagation using [8.8.8.8:53 8.8.4.4:53] 2023/10/18 08:16:36 [INFO] Wait for propagation [timeout: 1m0s, interval: 2s] 2023/10/18 08:16:40 [INFO] [main.example.com] The server validated our request 2023/10/18 08:16:40 [INFO] [main.example.com] acme: Cleaning DNS-01 challenge 2023/10/18 08:16:42 [INFO] Wait for nifcloud [timeout: 2m0s, interval: 4s] 2023/10/18 08:16:43 [INFO] [main.example.com] acme: Validations succeeded; requesting certificates 2023/10/18 08:16:43 [INFO] [main.example.com] Server responded with a certificate. ``` Version when it stopped working: ``` USER@SERVER:~$ sudo docker run --env NIFCLOUD_ACCESS_KEY_ID=ACCESS_KEY --env NIFCLOUD_SECRET_ACCESS_KEY=SECRET_ACCESS_KEY goacme/lego:v4.12 --dns nifcloud -a --email $MAIL_ADDR --domains $DOMAIN run Unable to find image 'goacme/lego:v4.12' locally v4.12: Pulling from goacme/lego 31e352740f53: Pull complete e7b3f22719e1: Pull complete a1e899f11eef: Pull complete Digest: sha256:55a9ca4985e15ef73344f150b00b3fd710c835603b5b0ad169c621ac70596a7f Status: Downloaded newer image for goacme/lego:v4.12 2023/10/18 08:22:28 No key found for account mail@example.com. Generating a P256 key. 2023/10/18 08:22:28 Saved key to /.lego/accounts/acme-v02.api.letsencrypt.org/mail@example.com/keys/mail@example.com.key 2023/10/18 08:22:29 [INFO] acme: Registering account for mail@example.com !!!! HEADS UP !!!! Your account credentials have been saved in your Let's Encrypt configuration directory at "/.lego/accounts". You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained from Let's Encrypt so making regular backups of this folder is ideal. 2023/10/18 08:22:29 [INFO] [main.example.com] acme: Obtaining bundled SAN certificate 2023/10/18 08:22:30 [INFO] [main.example.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxx 2023/10/18 08:22:30 [INFO] [main.example.com] acme: Could not find solver for: tls-alpn-01 2023/10/18 08:22:30 [INFO] [main.example.com] acme: Could not find solver for: http-01 2023/10/18 08:22:30 [INFO] [main.example.com] acme: use dns-01 solver 2023/10/18 08:22:30 [INFO] [main.example.com] acme: Preparing to solve DNS-01 2023/10/18 08:22:30 [INFO] [main.example.com] acme: Cleaning DNS-01 challenge 2023/10/18 08:22:30 [WARN] [main.example.com] acme: cleaning up failed: nifcloud: failed to change record set: Sender(MalformedXML): The request xml is malformed 2023/10/18 08:22:30 [INFO] Deactivating auth: https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxx 2023/10/18 08:22:30 Could not obtain certificates: error: one or more domains had a problem: [main.example.com] [main.example.com] acme: error presenting token: nifcloud: failed to change record set: Sender(MalformedXML): The request xml is malformed ```

Go environment (if applicable)

```console $ go version && go env # paste output here ```