[GH-ISSUE #2430] AttributeError: module 'certbot.interfaces' has no attribute 'IAuthenticator' #1702

Closed
opened 2026-02-26 07:32:07 +03:00 by kerem · 20 comments
Owner

Originally created by @naoki66 on GitHub (Nov 25, 2022).
Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2430

Checklist

  • Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker 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:

  1. Go to 'SSL Certificates. Add Let's Encrypt Certificate.Domain Names : *.AAA.COM.
  2. ADD Email Address for Let's Encrypt .
  3. OPEN USER A DNS CHALLENGE。
  4. change DNS Provider is Aliyun,

dns_aliyun_access_key = KKKKEEEYYY
dns_aliyun_access_key_secret = secretsecretsecretsecret

  1. Click on save
  2. Scroll down to '....'
  3. See error

Expected behavior

Screenshots

Operating System

Additional context

Originally created by @naoki66 on GitHub (Nov 25, 2022). Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2430 <!-- Are you in the right place? - If you are looking for support on how to get your upstream server forwarding, please consider asking the community on Reddit. - If you are writing code changes to contribute and need to ask about the internals of the software, Gitter is the best place to ask. - If you think you found a bug with NPM (not Nginx, or your upstream server or MySql) then you are in the *right place.* --> **Checklist** - Have you pulled and found the error with `jc21/nginx-proxy-manager:latest` docker 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** <!-- A clear and concise description of what the bug is. --> 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** <!-- What version of Nginx Proxy Manager is reported on the login page? --> v2.9.19 **To Reproduce** Steps to reproduce the behavior: 1. Go to 'SSL Certificates. Add Let's Encrypt Certificate.Domain Names : *.AAA.COM. 2. ADD Email Address for Let's Encrypt . 3. OPEN USER A DNS CHALLENGE。 4. change DNS Provider is Aliyun, dns_aliyun_access_key = KKKKEEEYYY dns_aliyun_access_key_secret = secretsecretsecretsecret 5. Click on save 6. Scroll down to '....' 7. See error **Expected behavior** <!-- A clear and concise description of what you expected to happen. --> **Screenshots** <!-- If applicable, add screenshots to help explain your problem. --> **Operating System** <!-- Please specify if using a Rpi, Mac, orchestration tool or any other setups that might affect the reproduction of this error. --> **Additional context** <!-- Add any other context about the problem here, docker version, browser version, logs if applicable to the problem. Too much info is better than too little. -->
kerem 2026-02-26 07:32:07 +03:00
  • closed this issue
  • added the
    stale
    bug
    labels
Author
Owner

@Rynal commented on GitHub (Nov 25, 2022):

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

<!-- gh-comment-id:1327861344 --> @Rynal commented on GitHub (Nov 25, 2022): 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
Author
Owner

@naoki66 commented on GitHub (Nov 26, 2022):

Error: Command failed: certbot certonly --config "/etc/letsencrypt.ini" --cert-name "npm-15" --agree-tos --email "MAIL" --domains "*.AAA.com" --authenticator dns-aliyun --dns-aliyun-credentials "/etc/letsencrypt/credentials/credentials-15"
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-7ncs4i4z/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 Socket. (node:internal/child_process:458:11)
at Socket.emit (node:events:513:28)
at Pipe. (node:net:301:12)

[root@docker-nginx-proxy-manager:/app]# cat /tmp/certbot-log-7ncs4i4z/log
2022-11-26 10:32:24,165:DEBUG:certbot._internal.log:Exiting abnormally:
Traceback (most recent call last):
File "/usr/local/bin/certbot", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.7/dist-packages/certbot/main.py", line 19, in main
return internal_main.main(cli_args)
File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/main.py", line 1707, in main
plugins = plugins_disco.PluginsRegistry.find_all()
File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/plugins/disco.py", line 208, in find_all
cls._load_entry_point(entry_point, plugins)
File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/plugins/disco.py", line 215, in _load_entry_p
oint
plugin_ep = PluginEntryPoint(entry_point)
File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/plugins/disco.py", line 56, in init
self.plugin_cls: Type[interfaces.Plugin] = entry_point.load()
File "/usr/local/lib/python3.7/dist-packages/pkg_resources/init.py", line 2450, in load
return self.resolve()
File "/usr/local/lib/python3.7/dist-packages/pkg_resources/init.py", line 2456, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/usr/local/lib/python3.7/dist-packages/certbot_dns_aliyun/dns_aliyun.py", line 20, in
@zope.interface.implementer(interfaces.IAuthenticator)
AttributeError: module 'certbot.interfaces' has no attribute 'IAuthenticator'
2022-11-26 10:32:24,165:ERROR:certbot._internal.log:An unexpected error occurred:
2022-11-26 10:32:24,165:ERROR:certbot._internal.log:AttributeError: module 'certbot.interfaces' has no attribu
te 'IAuthenticator'

<!-- gh-comment-id:1328022099 --> @naoki66 commented on GitHub (Nov 26, 2022): Error: Command failed: certbot certonly --config "/etc/letsencrypt.ini" --cert-name "npm-15" --agree-tos --email "MAIL" --domains "*.AAA.com" --authenticator dns-aliyun --dns-aliyun-credentials "/etc/letsencrypt/credentials/credentials-15" 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-7ncs4i4z/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 Socket. (node:internal/child_process:458:11) at Socket.emit (node:events:513:28) at Pipe. (node:net:301:12) ----------------------------------------------------------------- [root@docker-nginx-proxy-manager:/app]# cat /tmp/certbot-log-7ncs4i4z/log 2022-11-26 10:32:24,165:DEBUG:certbot._internal.log:Exiting abnormally: Traceback (most recent call last): File "/usr/local/bin/certbot", line 8, in <module> sys.exit(main()) File "/usr/local/lib/python3.7/dist-packages/certbot/main.py", line 19, in main return internal_main.main(cli_args) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/main.py", line 1707, in main plugins = plugins_disco.PluginsRegistry.find_all() File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/plugins/disco.py", line 208, in find_all cls._load_entry_point(entry_point, plugins) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/plugins/disco.py", line 215, in _load_entry_p oint plugin_ep = PluginEntryPoint(entry_point) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/plugins/disco.py", line 56, in __init__ self.plugin_cls: Type[interfaces.Plugin] = entry_point.load() File "/usr/local/lib/python3.7/dist-packages/pkg_resources/__init__.py", line 2450, in load return self.resolve() File "/usr/local/lib/python3.7/dist-packages/pkg_resources/__init__.py", line 2456, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/usr/local/lib/python3.7/dist-packages/certbot_dns_aliyun/dns_aliyun.py", line 20, in <module> @zope.interface.implementer(interfaces.IAuthenticator) AttributeError: module 'certbot.interfaces' has no attribute 'IAuthenticator' 2022-11-26 10:32:24,165:ERROR:certbot._internal.log:An unexpected error occurred: 2022-11-26 10:32:24,165:ERROR:certbot._internal.log:AttributeError: module 'certbot.interfaces' has no attribu te 'IAuthenticator'
Author
Owner

@Jonohas commented on GitHub (Nov 26, 2022):

Having the same issue

<!-- gh-comment-id:1328070607 --> @Jonohas commented on GitHub (Nov 26, 2022): Having the same issue
Author
Owner

@Cheety commented on GitHub (Nov 26, 2022):

Me too

<!-- gh-comment-id:1328097198 --> @Cheety commented on GitHub (Nov 26, 2022): Me too
Author
Owner
<!-- gh-comment-id:1328192285 --> @spoit commented on GitHub (Nov 27, 2022): Possibly related to https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2420 and/or https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2427 ?
Author
Owner

@fiepfiep commented on GitHub (Nov 27, 2022):

same issue.
would reverting to a previous image help?

<!-- gh-comment-id:1328251162 --> @fiepfiep commented on GitHub (Nov 27, 2022): same issue. would reverting to a previous image help?
Author
Owner

@LTAdmin87 commented on GitHub (Nov 28, 2022):

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 worked for me, but had to use command "pip3" instead of "/opt/certbot/bin/pip"

<!-- gh-comment-id:1328537294 --> @LTAdmin87 commented on GitHub (Nov 28, 2022): > 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 worked for me, but had to use command "pip3" instead of "/opt/certbot/bin/pip"
Author
Owner

@saffronjam commented on GitHub (Nov 28, 2022):

Same issue, with PowerDNS

<!-- gh-comment-id:1329721332 --> @saffronjam commented on GitHub (Nov 28, 2022): Same issue, with PowerDNS
Author
Owner

@fiepfiep commented on GitHub (Nov 28, 2022):

it seems updating the pip packages solves the issue. time for the devs to create a new image.

<!-- gh-comment-id:1329838924 --> @fiepfiep commented on GitHub (Nov 28, 2022): it seems updating the pip packages solves the issue. time for the devs to create a new image.
Author
Owner

@skye-z commented on GitHub (Nov 29, 2022):

This problem is caused by the wrong version of certbot, please go inside the docker container and execute the following command 👇

apt update
apt dist-upgrade
apt install python3 python3-venv libaugeas0
python3 -m venv /opt/certbot/
pip3 install --upgrade pip
pip3 install certbot==1.32.0 certbot-apache==1.32.0 acme==1.32.0

Please take care to backup your data

<!-- gh-comment-id:1329981484 --> @skye-z commented on GitHub (Nov 29, 2022): This problem is caused by the wrong version of certbot, please go inside the docker container and execute the following command 👇 ```shell apt update apt dist-upgrade apt install python3 python3-venv libaugeas0 python3 -m venv /opt/certbot/ pip3 install --upgrade pip pip3 install certbot==1.32.0 certbot-apache==1.32.0 acme==1.32.0 ``` > Please take care to backup your data
Author
Owner

@spoit commented on GitHub (Nov 29, 2022):

Can confirm that https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2430#issuecomment-1329981484 fixed it for me as well

edit: typo

<!-- gh-comment-id:1330790962 --> @spoit commented on GitHub (Nov 29, 2022): Can confirm that https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2430#issuecomment-1329981484 fixed it for me as well edit: typo
Author
Owner

@bkakilli commented on GitHub (Nov 30, 2022):

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:

apt update; apt upgrade -y
apt install -y libaugeas0
pip3 install --upgrade pip
pip3 install certbot==1.32.0 certbot-apache==1.32.0 acme==1.32.0

# Clean up cache [optional]
apt clean
pip3 cache purge

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

<!-- gh-comment-id:1331687301 --> @bkakilli commented on GitHub (Nov 30, 2022): 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: ```bash apt update; apt upgrade -y apt install -y libaugeas0 pip3 install --upgrade pip pip3 install certbot==1.32.0 certbot-apache==1.32.0 acme==1.32.0 # Clean up cache [optional] apt clean pip3 cache purge ``` **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
Author
Owner

@Misterbabou commented on GitHub (Dec 1, 2022):

Same issue for me. I had to go back to previous version (2.9.18)

<!-- gh-comment-id:1333755991 --> @Misterbabou commented on GitHub (Dec 1, 2022): Same issue for me. I had to go back to previous version (2.9.18)
Author
Owner

@boertianxia commented on GitHub (Dec 2, 2022):

For me, https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2430#issuecomment-1329981484 works.
But note, for example, I select Dynu DDNS on the web page, if no version is specified, it will automatically use certbot-dns-dynu==0.0.4 and update certbot==2.0.0, even if certbot==1.32.0 was set before, This is why some people still have no effect even after executing the above script
So you need to manually install the previous version:

pip3 install certbot-dns-dynu==0.0.3 (it depends on certbot>=1.32.0)

The same for other plugins(cerbot-dns-xxx), you can go to pypi to check the historical version of certbot-dns-xxx, use "pip3 freeze" to view the current local certbot and plugin versions .

The script below works for me(docker image: jc21/nginx-proxy-manager:2.9.19)

apt update
apt upgrade -y
apt install -y libaugeas0
pip3 install --upgrade pip
pip3 install certbot==1.32.0 certbot-apache==1.32.0 acme==1.32.0
pip3 install certbot-dns-dynu==0.0.3
<!-- gh-comment-id:1335063369 --> @boertianxia commented on GitHub (Dec 2, 2022): For me, https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2430#issuecomment-1329981484 works. But note, for example, I select Dynu DDNS on the web page, if no version is specified, it will automatically use certbot-dns-dynu==0.0.4 and update certbot==2.0.0, even if certbot==1.32.0 was set before, This is why some people still have no effect even after executing the above script So you need to manually install the previous version: ``` pip3 install certbot-dns-dynu==0.0.3 (it depends on certbot>=1.32.0) ``` The same for other plugins(cerbot-dns-xxx), you can go to pypi to check the historical version of certbot-dns-xxx, use "pip3 freeze" to view the current local certbot and plugin versions . The script below works for me(docker image: jc21/nginx-proxy-manager:2.9.19) ``` apt update apt upgrade -y apt install -y libaugeas0 pip3 install --upgrade pip pip3 install certbot==1.32.0 certbot-apache==1.32.0 acme==1.32.0 pip3 install certbot-dns-dynu==0.0.3 ```
Author
Owner

@axza commented on GitHub (Dec 2, 2022):

came here because of:

✖  error     Error: Command failed: certbot renew --non-interactive --quiet --config "/etc/letsencrypt.ini" --preferred-challenges "dns,http" --disable-hook-validation
An unexpected error occurred:
ModuleNotFoundError: No module named 'zope'

    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)

Temporary fix with previous versions would be

pip3 install certbot==1.32.0 certbot-apache==1.32.0 acme==1.32.0 certbot-dns-ionos==2022.5.15
<!-- gh-comment-id:1335277220 --> @axza commented on GitHub (Dec 2, 2022): came here because of: ``` ✖ error Error: Command failed: certbot renew --non-interactive --quiet --config "/etc/letsencrypt.ini" --preferred-challenges "dns,http" --disable-hook-validation An unexpected error occurred: ModuleNotFoundError: No module named 'zope' 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) ``` Temporary fix with previous versions would be ``` pip3 install certbot==1.32.0 certbot-apache==1.32.0 acme==1.32.0 certbot-dns-ionos==2022.5.15 ```
Author
Owner

@lucidnx commented on GitHub (Dec 6, 2022):

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

Thanks for temp fix :)

<!-- gh-comment-id:1340133075 --> @lucidnx commented on GitHub (Dec 6, 2022): > 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 Thanks for temp fix :)
Author
Owner

@LanceMcCarthy commented on GitHub (Dec 25, 2022):

Thank you! This also seems to fix the issue with "test server reachability" feature on the SSL page, too.

<!-- gh-comment-id:1364720147 --> @LanceMcCarthy commented on GitHub (Dec 25, 2022): Thank you! This also seems to fix the issue with "test server reachability" feature on the SSL page, too.
Author
Owner

@a3gill commented on GitHub (Aug 23, 2023):

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.32 while installing the DNS provider package with the following:

apt update && apt upgrade -y && apt install -y libaugeas0
pip3 install --upgrade pip
pip3 install certbot==1.32.0 certbot-nginx==1.32.0 acme==1.32.0 certbot-dns-godaddy
<!-- gh-comment-id:1690342678 --> @a3gill commented on GitHub (Aug 23, 2023): 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.32` while installing the DNS provider package with the following: ``` apt update && apt upgrade -y && apt install -y libaugeas0 pip3 install --upgrade pip pip3 install certbot==1.32.0 certbot-nginx==1.32.0 acme==1.32.0 certbot-dns-godaddy ```
Author
Owner

@github-actions[bot] commented on GitHub (Apr 22, 2024):

Issue is now considered stale. If you want to keep it open, please comment 👍

<!-- gh-comment-id:2068345750 --> @github-actions[bot] commented on GitHub (Apr 22, 2024): Issue is now considered stale. If you want to keep it open, please comment :+1:
Author
Owner

@github-actions[bot] commented on GitHub (Jun 14, 2025):

Issue was closed due to inactivity.

<!-- gh-comment-id:2972128712 --> @github-actions[bot] commented on GitHub (Jun 14, 2025): Issue was closed due to inactivity.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nginx-proxy-manager-NginxProxyManager#1702
No description provided.