acme.sh icon indicating copy to clipboard operation
acme.sh copied to clipboard

Plesk XMLAPI Compatibility with all Plesk editions

Open lufi42 opened this issue 3 years ago • 5 comments

Fixing the way of Plesk API calls to fetch all domains. This implementation of the Plesk API is compatible with all Plesk editions.

This implementation of the Plesk API will add support for Plesk web admin edition and will now discover all domains managed by the specific plesk instance.

The existing implementation of the Plesk API uses the customer API. This results in two problems:

  1. The current API call only fetches the domains of resellers/customers and not the domains that are managed by administrative users.

compare: https://docs.plesk.com/en-US/obsidian/api-rpc/about-xml-api/reference/managing-customer-accounts/retrieving-the-list-of-customer%E2%80%99s-domains.75309/ https://docs.plesk.com/en-US/obsidian/api-rpc/about-xml-api/reference/managing-plesk-server/getting-server-information/response-packet-structure-and-samples/list-of-domains.75294/

  1. The customer API is only available in the pro/admin editions. But the most common license on VPS/Dedicated Servers is the web host edition. See: https://www.plesk.com/editions/

The correct way to get all domains in all Plesk editions is to use the Sites (Domains) API: https://docs.plesk.com/en-US/obsidian/api-rpc/about-xml-api/reference/managing-sites-domains/getting-information-about-sites.66583/

lufi42 avatar Jun 26 '22 21:06 lufi42

please fix the dns ci test in your fork: https://github.com/acmesh-official/acme.sh/wiki/DNS-API-Test

Neilpang avatar Jul 07 '22 11:07 Neilpang

please rerun your tests, sometimes there could be some temp error from the CA.

Neilpang avatar Jul 11 '22 13:07 Neilpang

@Neilpang My code is working, but I think it's time to give up. I spent hours to understand how to pass the tests. But the tests are failing in step 1xxx and I think that the reason is not this DNS plugin.

However, this seems to be the issue:

[Sun Jul 10 16:43:30 UTC 2022] code='400'
[Sun Jul 10 16:43:30 UTC 2022] original='{
  "type": "urn:ietf:params:acme:error:malformed",
  "detail": "Unable to update challenge :: authorization must be pending",
  "status": 400
}

I've no idea how to solve this. I don't understand from the log where the test returns 1.

And now the newest funny thing is this:

[Sat Jul 16 21:17:59 UTC 20[22](https://github.com/lufi42/acme.sh/runs/7373185859?check_suite_focus=true#step:5:23)] Log_Out='logs/ubuntu-latest.out'
./rundocker.sh: line 326: logs/ubuntu-latest.out: No such file or directory
[Sat Jul 16 21:17:59 UTC 2022] code='1'
cat: logs/ubuntu-latest.out: No such file or directory
ubuntu:latest [FAIL]

The test doesn't even spin up the ubuntu box.

lufi42 avatar Jul 16 '22 21:07 lufi42

sorry, the newest error was brought in yesterday by my changes. It should be fixed now. please rerun your tests.

Neilpang avatar Jul 17 '22 03:07 Neilpang

image

Neilpang avatar Aug 26 '22 15:08 Neilpang

The tests are all green now. @Neilpang can you please review.

lufi42 avatar May 10 '23 16:05 lufi42