-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GoDaddy API Limitations #2269
Comments
https://go-acme.github.io/lego/dns/godaddy/index.html#additional-configuration
Related to #2182 |
This comment was marked as outdated.
This comment was marked as outdated.
You should consider replacing GoDaddy with a DNS provider with a better policy. If you already own a domain in another DNS provider, you can use the CNAME approach, like that you will be able to still use your GoDaddy domain. Sadly I have no other solution, the GoDaddy API policies are extremely bad. |
Hi, I should have noted in my original, that the GET URL also appears to work without restriction:
This should allow getting all TXT record for a domain or subdomain. I'm not sure where the "Authenticated user is not allowed access" message is being generated from, the log line just before indicate that it is cleaning up. I'm not sure of the particular API being called at this point though.
|
Sorry, I mixed the 2 endpoints in my head but the problem is the same: lego uses:
As there are no alternatives to add a TXT record then there is no solution. |
After re-checking the doc, there is another endpoint https://developer.godaddy.com/doc/endpoint/domains#/v1/recordAdd But I guess the limitations are the same as the PUT endpoint. |
Also, it seems (from a post on a forum) like the API limitations are not the same for the apex ( But I think this doesn't really change the possibilities. |
let me re-clarify here:
I do get the issue with GoDaddy, and would encourage every user to make a formal complaint for a basic API access. However, it will be a commercial decision and so unlikely to change. That said, there appears to be a route to allow the Lego provider to work, but it seems like one particular API is being called which triggers the issue. If there's a way to get HTTP trace logging out of Lego, I'm more than happy to debug, and locate the specific API being called that causes the issue. |
The lego implementation for GoDaddy is basic:
It's the same call to add and "delete". So nothing special.
The error message is clear: it fails during the clean up when lego gets all domains. The workflow is this one:
|
GoDaddy limitations are extreme: one call can work but 2 calls in a row are not working. Clearly, you should go away from this DNS provider or use the CNAME approach with another DNS provider. |
Found the issue. The error in question is generated from the godaddy.go:177. The final argument to this call is a blank string. I presume at some point, this meant all records of type. This is passed to client.go:40 where it is placed into the request. Replicating the call in curl gets the same API error:
However, placing "_acme-challenge." in the final argument works correctly. 100% of the time. e.g.
The "subdomain" part should be the domain(s) between the root of the owned domain in the GoDaddy console and the record. For example requesting "a.b.c.example.com" and "example.com" is the owned domain, then the last part of the request should be "_acme-challenge.a.b.c" |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
oh I see |
Can you try #2270 ? |
In fact, there are some API changes because this implementation has been used since 2020 without problems. Good catch 👍 I modified the implementation to follow your findings and also implemented the DELETE. I will wait for your feedback about #2270. |
Tested. There were some latent issues with the API. I've fixed and attached a diff. Sorry, was having trouble updating the PR. |
Most of your patch was already inside the PR, so I just kept the effective diff. |
Welcome
What did you expect to see?
The GoDaddy DNS provider cleans up old record of type TXT with name _acme-challenge.
Note that I understand this is not a lego fault, it's a change with the API access allowed by GoDaddy. However, after some playing, I found that the APIs which could be used for ACME are still open.
For example, the following request is allowed to delete:
So, there's likely some API used which is disallowed by the new policies put in place by GoDaddy. However, there seems to be some workarounds. Btw, the TXT record creation works without an issue.
What did you see instead?
The command line reported
How do you use lego?
Binary
Reproduction steps
Version of lego
lego version 4.18.0 darwin/arm64
Logs
Go environment (if applicable)
The text was updated successfully, but these errors were encountered: