Skip to content
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

Update DomainOffensive certbot plugin #4235

Conversation

FabianK3
Copy link
Contributor

Summary

This PR replaces the current DomainOffensive (do.de) cert bot with the new official version.
The current do certbot repo has been forked by DomainOffensive and seems to be the official bot now.

Changes

Basically i have replaced the current certbot-dns-plugins config with the new repository and python package.
Looking into the new repository of DomainOffensive, i don't see any new additions or changes, yet i think using the official certbot seems to be a good thing for future versions.

@FabianK3
Copy link
Contributor Author

@DFS-90 Hi/Grüße!

As this is my first contribution to the repo and you beeing the initial contributor on the DomainOffensive certbot i would love your feedback on this. This is also a "for your information" for you personally.

That said, for everyone:

I currently have no environment to test the changes and would appreciate any feedback on this.

@FabianK3 FabianK3 marked this pull request as ready for review December 15, 2024 12:03
@nginxproxymanagerci
Copy link

Docker Image for build 1 is available on
DockerHub
as nginxproxymanager/nginx-proxy-manager-dev:pr-4235

Note: ensure you backup your NPM instance before testing this image! Especially if there are database changes
Note: this is a different docker image namespace than the official image

@jc21
Copy link
Member

jc21 commented Dec 16, 2024

@FabianK3 are you able to use the docker image mentioned to conduct your tests?

@jc21 jc21 added the requires-verification Waiting for one or more people to confirm the fix label Dec 16, 2024
@FabianK3
Copy link
Contributor Author

@jc21 I currently have no domain/service on hand to end-to-end test the provider, deploying/testing the image isn't the issue for me. I might be able to do it at the end of the year, but i can't promise that at the moment.

@jc21
Copy link
Member

jc21 commented Dec 23, 2024

Can I ask then, why do you want to update this dns plugin when you don't use it?

@FabianK3
Copy link
Contributor Author

@jc21 Perhaps i didn't put it clearly enough!
I am planning on using this provider as i am owning domains on said provider.
I'll use the provider within NPM in my home lab, but i currently have not the time to get going with it.

As for why i updated the provider: I am sure the current provider implementation does what it is supposed to do. From a conversation with the do.de provider support i was informed that they do provide an API and linked me to their certbot implementation. I then realized it was a new fork in their name of the current provider used in NPM and my thought was it may be more future-proof to use their own fork instead of the current should any changes arise in the future.

Tl;dr: I have relations to do.de and i like to give back to this project. :)

(Merry Christmas!)

@jc21
Copy link
Member

jc21 commented Dec 29, 2024

Ok great I'll wait for you (or someone) to test it then.

If you would like CI to rebuild the PR docker image for you, simply leave a comment here with only this text in the body:

rebuild

@jc21
Copy link
Member

jc21 commented Feb 5, 2025

I guess no one wants to test it. I'll release it and wait for complaints.

@jc21 jc21 merged commit 2a07544 into NginxProxyManager:develop Feb 5, 2025
1 check passed
@FabianK3 FabianK3 deleted the update-domainoffensive-certbot-plugin branch February 6, 2025 19:12
@chindocaine
Copy link

I found this PR today because it breaks renewal for all existing certificates using this provider.
Failed to renew certificate npm-* with error: The requested dns-do plugin does not appear to be installed
Here's what I had to do to fix this:

sed -i 's/dns-do$/dns-domainoffensive/g' /etc/letsencrypt/renewal/*.conf
sed -i 's/dns_do_credentials/dns_domainoffensive_credentials/g' /etc/letsencrypt/renewal/*.conf
sed -i 's/dns_do_api_token/dns_domainoffensive_api_token/g' /etc/letsencrypt/credentials/credentials-*

Also I assume it won't even work for new ones since the dns_do_api_token was not updated.
This PR brings no value and also breaks existing logic, so I vote to revert it. @jc21 @FabianK3

@FabianK3
Copy link
Contributor Author

I guess no one wants to test it. I'll release it and wait for complaints.

Perhaps another approach would've been wiser. 😁
I feared this might happen without any testing.
@chindocaine @jc21 I agree to revert until it has been properly tested.

@FabianK3
Copy link
Contributor Author

Perhaps instead of reverting it, we could just add the fix from @chindocaine ?
I am not really aware on how to migrate content like that within a PR/release, any help would be appreciated.

@chindocaine
Copy link

I also don't know if it would be possible to run the above mentioned fixes for the renewal in an automated way. I'm also not quite sure what would be the better way to go, revert the change (some people, including me, might have modified their config already, so for them it would break again) or keep it and hope that everyone who is affected by it will find this thread to know how to fix it.

Anyway, if we keep the new plugin, at least the config should be fixed to use
"credentials": "dns_domainoffensive_api_token = YOUR_DO_DE_AUTH_TOKEN",
instead of
"credentials": "dns_do_api_token = YOUR_DO_DE_AUTH_TOKEN",
I tested it in the mean time, without this fix the creation of a new certificate will fail as well. I guess I could make a PR for it.

chindocaine added a commit to chindocaine/nginx-proxy-manager that referenced this pull request Feb 28, 2025
In NginxProxyManager#4235 the certbot plugin for do.de (Domain Offensive) was updated to use the more
official version. One necessary line modification was missed, resulting in an error when creating a new certificate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
requires-verification Waiting for one or more people to confirm the fix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants