Certbot DNS TransIP

raw JSON →
0.5.2 verified Sat May 09 auth: no python

Certbot plugin for DNS-01 challenge using TransIP API. Version 0.5.2 last updated 2022. Low release cadence.

pip install certbot-dns-transip
error ModuleNotFoundError: No module named 'certbot_dns_transip'
cause Package not installed or typo in package name.
fix
pip install certbot-dns-transip
error ModuleNotFoundError: No module named 'certbot_dns_transip._internal'
cause Direct import of certbot_dns_transip (top-level) attempts to import _internal incorrectly.
fix
Use: from certbot_dns_transip._internal.dns_transip import Authenticator
error certbot_dns_transip.exceptions.AuthenticationError: Unable to authenticate with TransIP API
cause Invalid login name, private key path, or private key file content.
fix
Verify TRANSIP_LOGIN and TRANSIP_PRIVATE_KEY_PATH are correct. Ensure private key file is readable and in PEM format.
breaking Import path changed after version 0.3.x. Direct import from certbot_dns_transip fails in 0.5.x.
fix Use from certbot_dns_transip._internal.dns_transip import Authenticator
gotcha Private key file path must be absolute. Relative paths silently fail.
fix Use os.path.abspath() or config with absolute path.
deprecated global_key parameter is optional but if set incorrectly (e.g., wrong format) causes API errors.
fix Leave global_key as None if not using a global key; string must match TransIP control panel.

Initialize Authenticator using environment variables. Replace empty strings with actual values.

import os
from certbot_dns_transip._internal.dns_transip import Authenticator

config = {
    "transip_login": os.environ.get('TRANSIP_LOGIN', ''),
    "transip_private_key_path": os.environ.get('TRANSIP_PRIVATE_KEY_PATH', ''),
    "transip_global_key": os.environ.get('TRANSIP_GLOBAL_KEY', '') or None,
}
auth = Authenticator(config)
auth.prepare()
print(auth.more_info() if hasattr(auth, 'more_info') else 'Authenticator ready')