NginxProxyManager / NginxProxyManager/nginx-proxy-manager

DNS Challenge: no support for mTLS client certificates (e.g. reg.ru now requires it)

Open
#5,786 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Problem

Some DNS providers now require mutual TLS (mTLS / client certificate) authentication on their API in addition to username/token.

Concrete example: reg.ru recently started requiring a client certificate for its API. Requests without a client cert are rejected with:

{"error_code": "NO_CERTIFICATE", "error_text": "The certificate not found"}

This breaks Let's Encrypt DNS-01 challenges and certificate auto-renewal for users whose DNS is hosted on such providers.

Impact

  • Certificate issuance/renewal via the DNS Challenge fails.
  • Users cannot configure a client certificate (cert + key) anywhere in the NPM UI for DNS challenge credentials — only username/password-style fields are exposed.

Suggested solution

Allow DNS challenge configuration to include an optional client certificate (cert + key, or a combined PEM) that is passed to the ACME client (lego / certbot DNS plugin) when talking to the provider API.

Workaround (for reference)

For the certbot-based path, this can be worked around by patching the bundled certbot-dns-regru plugin to send a client cert, but it is lost on container recreation and is not exposed via the UI. See certbot-dns-regru PR: https://github.com/shadowpercifal/certbot-dns-regru/pull/1

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 with the DNS challenge configuration flow and the ACME client/provider integration described in the issue, including the UI fields for credentials. Verify the reg.ru mTLS requirement and determine how certificate and key data should be passed to the provider. Done means users can configure a client certificate and successfully issue or renew a certificate through the DNS challenge.

Written by the indexing model from the issue text.

Assessment

Domain
backend, frontend, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.