NginxProxyManager / NginxProxyManager/nginx-proxy-manager

Letsencrypt challenge uses ipv6, even when disabled

Open
#5,635 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
TypeScript
Stars
34.2k
Forks
3.9k
Avg merge
21h 12m
Merged PRs (30d)
20

Description

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?
    • No
  • Have you searched for similar issues (both open and closed)?
    • Yes

Describe the bug

Certbot uses an IPv6 address instead of IPv4. Since my network doesn't support IPv6, the challenge fails.

Nginx Proxy Manager Version

v2.15.1, image with sha256:f44e23f5e4d7d71dae4548e273b498c567311c76502a128f3bc782f528a58087

To Reproduce
Steps to reproduce the behavior:

My docker-compose.yaml:

services:
  app:
    container_name: nginx-proxy-manager
    image: 'jc21/nginx-proxy-manager:latest' # sha256:f44e23f5e4d7d71dae4548e273b498c567311c76502a128f3bc782f528a58087
    restart: unless-stopped
    environment:
      DISABLE_IPV6: 'true'
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

I see that the environment var is picked up:

$ docker compose logs | grep -i ipv
nginx-proxy-manager  | ❯ IPv6 ...
nginx-proxy-manager  | Disabling IPV6 in hosts in: /etc/nginx/conf.d
nginx-proxy-manager  | Disabling IPV6 in hosts in: /data/nginx

But the challenge still uses IPv6:

Certbot failed to authenticate some domains (authenticator: webroot). The Certificate Authority reported these problems:
  Identifier: xxx.xxx.com
  Type:   unauthorized
  Detail: 2001:xxx:xxx:xxx::xxx: Invalid response from http://xxx.xxx.com/.well-known/acme-challenge/bIT8OpBsNGZJu7e1nimsVn5-teJWm5l3Snw6ebiy-l8: 204

Operating System

Latest Arch Linux
Docker version 28.5.2, build ecc694264d.

What am I missing here?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with the shown docker-compose.yaml and inspect how DISABLE_IPV6 is applied to Nginx and the Certbot webroot challenge. Compare the IPv6 challenge failure with the container logs and configuration under /etc/nginx/conf.d and /data/nginx. Done means certificate challenges consistently use IPv4 when IPv6 is disabled.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, docker-compose, nginx
Domain
devops, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.