nginx-proxy-manager: AttributeError: module 'certbot.interfaces' has no attribute 'IAuthenticator'
Checklist
- Have you pulled and found the error with
jc21/nginx-proxy-manager:latestdocker image?- Yes
- Are you sure you’re not using someone else’s docker image?
- Yes
- Have you searched for similar issues (both open and closed)?
- Yes
Describe the bug
Error: Command failed: certbot certonly --config “/etc/letsencrypt.ini” --cert-name “npm-13” --agree-tos --email “AAAA@AAAA.com” --domains “*.AAA.com” --authenticator dns-aliyun --dns-aliyun-credentials “/etc/letsencrypt/credentials/credentials-13” An unexpected error occurred: AttributeError: module ‘certbot.interfaces’ has no attribute ‘IAuthenticator’ Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /tmp/certbot-log-i3b4nos8/log or re-run Certbot with -v for more details.
at ChildProcess.exithandler (node:child_process:402:12)
at ChildProcess.emit (node:events:513:28)
at maybeClose (node:internal/child_process:1100:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
Nginx Proxy Manager Version
v2.9.19
To Reproduce Steps to reproduce the behavior:
- Go to 'SSL Certificates. Add Let’s Encrypt Certificate.Domain Names : *.AAA.COM.
- ADD Email Address for Let’s Encrypt .
- OPEN USER A DNS CHALLENGE。
- change DNS Provider is Aliyun,
dns_aliyun_access_key = KKKKEEEYYY dns_aliyun_access_key_secret = secretsecretsecretsecret
- Click on save
- Scroll down to ‘…’
- See error
Expected behavior
Screenshots
Operating System
Additional context
About this issue
- Original URL
- State: open
- Created 2 years ago
- Comments: 19
This Works as Temporary Workaround for me.
Open the Container Shell docker exec -it nginxproxymanager_app_1 /bin/bash
apt update apt dist-upgrade apt install python3 python3-venv libaugeas0 python3 -m venv /opt/certbot/ /opt/certbot/bin/pip install --upgrade pip /opt/certbot/bin/pip install certbot==1.32.0 certbot-apache==1.32.0 acme==1.32.0
This problem is caused by the wrong version of certbot, please go inside the docker container and execute the following command 👇
I can confirm that https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2430#issuecomment-1329981484 fixed it. But certain lines are not needed and can be confusing for others, so the updated one:
Note: I had to request the certifate twice from LetsEncrypt. My first trial gave an error (a different one), so you might need to try a few times until you get it.
Thanks @Rynal @skay-zhang
Possibly related to https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2420 and/or https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2427 ?
This is it. It’s what finally worked for me. DNS provider for GoDaddy was leading to the failure, but only because it bumped the version of certbot above
2.I mixed a few approaches from above, but the key for me was pinning all the important certbot packages down to
1.32while installing the DNS provider package with the following:Same issue, with PowerDNS
This worked for me, but had to use command “pip3” instead of “/opt/certbot/bin/pip”