Skip to main content

Forpsi DNS Authenticator plugin for Certbot

Project description

Certbot DNS Forpsi Plugin

A Certbot plugin to complete DNS-01 challenges by automatically managing TXT records for domains registered with Forpsi.

Since Forpsi does not provide an API for DNS management, this plugin interacts with the Forpsi admin web interface to add and remove TXT records required for Let's Encrypt certificate issuance. This means if Forpsi changes their admin interface, the plugin may break and require updates. Please report any issues you encounter.

Inspiration: This project was inspired by AreYouLoco's Forpsi acme.sh script.

⚠️ Beta Software Disclaimer

This plugin is currently in beta status. It has been tested and confirmed to work with admin.forpsi.hu. Further testing is needed for other Forpsi admin sites. Please report any issues you encounter.

Development Note: Inital Forpsi admin site "API" testing was conducted by me (Ákos Szabados), but most of the coding was done using Claude Code.

Features

  • Automated DNS-01 challenge completion via Forpsi admin interface
  • Support for multiple Forpsi admin sites
  • Two-factor authentication (TOTP) support
  • Automatic domain ID discovery for subdomains
  • Multiple TXT record management (add/delete)
  • CLI parameter support as alternative to credentials file

Installation

From PyPI

Install the plugin directly from PyPI:

pip install certbot-dns-forpsi

From Source

Clone the repository and install:

pip install .

Usage

Method 1: Using credentials file

  1. Create credentials file:
cp forpsi-credentials.ini.example forpsi-credentials.ini
  1. Edit forpsi-credentials.ini with your Forpsi credentials

  2. Set appropriate permissions:

chmod 600 forpsi-credentials.ini
  1. Run Certbot:
certbot certonly \
  --authenticator dns-forpsi \
  --dns-forpsi-credentials ./forpsi-credentials.ini \
  --dns-forpsi-propagation-seconds 120 \
  -d example.com \
  -d *.example.com

Method 2: Using CLI parameters

certbot certonly \
  --authenticator dns-forpsi \
  --dns-forpsi-admin-site admin.forpsi.com \
  --dns-forpsi-username your_username \
  --dns-forpsi-password your_password \
  --dns-forpsi-totp-secret your_totp_secret \
  --dns-forpsi-propagation-seconds 120 \
  -d example.com

Configuration Options

  • --dns-forpsi-credentials: Path to Forpsi credentials INI file
  • --dns-forpsi-admin-site: Forpsi admin site (e.g., admin.forpsi.com)
  • --dns-forpsi-username: Forpsi username (alternative to credentials file)
  • --dns-forpsi-password: Forpsi password (alternative to credentials file)
  • --dns-forpsi-totp-secret: TOTP secret for 2FA (optional)
  • --dns-forpsi-propagation-seconds: DNS propagation delay (default: 120 seconds)

Credentials File Format

Create a forpsi-credentials.ini file with the following format:

certbot_dns_forpsi:dns_forpsi_admin_site = admin.forpsi.com
certbot_dns_forpsi:dns_forpsi_username = your_username
certbot_dns_forpsi:dns_forpsi_password = your_password
certbot_dns_forpsi:dns_forpsi_totp_secret = your_totp_secret

Two-Factor Authentication

If you have 2FA enabled on your Forpsi account, provide your TOTP secret:

  • Get your TOTP secret from your authenticator app setup
  • Add it to the credentials file or use the --dns-forpsi-totp-secret parameter

How It Works

  1. Authentication: Authenticates with Forpsi admin interface using username/password and optional TOTP
  2. Domain Discovery: Automatically discovers domain IDs by parsing the domain list page
  3. TXT Record Management: Adds/removes TXT records through the admin interface
  4. Verification: Verifies record creation/deletion by checking the admin interface

Development

To install in development mode:

pip install -e .

Testing

Test with Let's Encrypt staging environment:

certbot certonly \
  --authenticator dns-forpsi \
  --dns-forpsi-credentials ./forpsi-credentials.ini \
  --test-cert \
  -d example.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

certbot_dns_forpsi-0.1.1.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

certbot_dns_forpsi-0.1.1-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file certbot_dns_forpsi-0.1.1.tar.gz.

File metadata

  • Download URL: certbot_dns_forpsi-0.1.1.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for certbot_dns_forpsi-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f4ba6bc0265c8237db4a692fcc5349f6ad541fdfcca97e48b5de1dba6ab8de0f
MD5 5fde0f2e78f4ebb9133da6be75f3bc67
BLAKE2b-256 578c8b2ac6ad044b32a51ea041bc25ecda08d59c79eb186784945145702f81f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for certbot_dns_forpsi-0.1.1.tar.gz:

Publisher: publish.yml on roshek/certbot-dns-forpsi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file certbot_dns_forpsi-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for certbot_dns_forpsi-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a09caee85d557be03243c035a30d123c03bc535a5a775252e7c2249f5cd368de
MD5 dc82fe3cb762870f3bfc5448af6da7ac
BLAKE2b-256 2fc670247bbff1242f30bc01e8ed2e0845a4a393c34e4dd68ca15a6454e2f45f

See more details on using hashes here.

Provenance

The following attestation bundles were made for certbot_dns_forpsi-0.1.1-py3-none-any.whl:

Publisher: publish.yml on roshek/certbot-dns-forpsi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page