PHPackages                             roy-bongers/certbot-transip-dns-01-validator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. roy-bongers/certbot-transip-dns-01-validator

ActiveProject

roy-bongers/certbot-transip-dns-01-validator
============================================

Certbot DNS-01 validation for wildcard certificates (ACME-v2)

v4.2.2(2mo ago)843313[1 issues](https://github.com/roy-bongers/certbot-transip-dns-01-validator/issues)GPL-3.0-or-laterPHPPHP ^8.2CI failing

Since Dec 4Pushed 3w ago2 watchersCompare

[ Source](https://github.com/roy-bongers/certbot-transip-dns-01-validator)[ Packagist](https://packagist.org/packages/roy-bongers/certbot-transip-dns-01-validator)[ Docs](https://github.com/roy-bongers/certbot-transip-dns-01-validator)[ RSS](/packages/roy-bongers-certbot-transip-dns-01-validator/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (10)Versions (30)Used By (0)

 [![Workflow status](https://camo.githubusercontent.com/da4c9ecf80114fafd938d13f7ba9c141e351d498991878c971e7eb8ec06683fe/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f726f792d626f6e676572732f63657274626f742d7472616e7369702d646e732d30312d76616c696461746f722f706870756e69742e796d6c3f6272616e63683d6d6173746572)](https://github.com/roy-bongers/certbot-transip-dns-01-validator/actions?query=branch%3Amaster) [![Latest GitHub tag](https://camo.githubusercontent.com/06b6c7d1542d31f43537d8080765230c3a25ef37711715368404b8354c57df30/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f726f792d626f6e676572732f63657274626f742d7472616e7369702d646e732d30312d76616c696461746f72)](https://github.com/roy-bongers/certbot-transip-dns-01-validator/releases) [![License GPL-3.0](https://camo.githubusercontent.com/7b62c8d6da38e00c32dcbdf37651fa13428035e06765bc66ca380c2dccde81d8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f726f792d626f6e676572732f63657274626f742d7472616e7369702d646e732d30312d76616c696461746f72)](https://github.com/roy-bongers/certbot-transip-dns-01-validator/blob/master/LICENSE)

certbot-transip-dns-01-validator
================================

[](#certbot-transip-dns-01-validator)

Certbot DNS-01 validation for wildcard certificates (ACME-v2)

I created this script to request wildcard SSL certificates from [Let’s Encrypt](https://letsencrypt.org/). You are required to do a DNS-01 challenge for which you need to create a DNS (TXT) record. [TransIP](https://www.transip.nl/transip/api/) has an API which allows you to automate this. When you need to renew your certificate you also need to perform the DNS-01 challenge again. This should happen automatically.

Requirements
------------

[](#requirements)

Version 2.5 has the following requirements. If you use an older PHP version you have to use an older release. Upgrading from v1? See the [upgrade guide](#upgrade-guide).

- PHP &gt;= 7.4 with JSON and OpenSSL extensions enabled
- The [composer](https://getcomposer.org/download/) package manager

Installation
------------

[](#installation)

- Run `composer install --no-dev`
- Copy `config/config.php.example` to `config/config.php`
- Acquire an API key for TransIP in [your account](https://www.transip.nl/cp/account/api/) on their website
- Edit `config/config.php` and set your login and private key.
- Make sure you set the access to this file to only allow your user to read the contents of this file (on linux `chmod og-rwx config/config.php`)

Request a wildcard certificate
------------------------------

[](#request-a-wildcard-certificate)

Use this command to request the certificate. Replace "/path/to/" with the actual path on your system. It takes a couple of minutes for the nameservers to be updated. Please be patient until the validation completes.

```
certbot certonly --manual --preferred-challenges=dns \
--manual-auth-hook /path/to/auth-hook --manual-cleanup-hook /path/to/cleanup-hook \
-d 'domain.com' -d '*.domain.com'
```

If you need to do some testing add the staging flag to the certbot command:

```
--test-cert

```

To automatically renew your certificate add the Certbot renew command in a cron job so it runs at least monthly.

```
/usr/bin/certbot renew
```

Docker
------

[](#docker)

There is also a docker container which you can use. You can either bind mount the `config` folder or use `ENV` variables. These variables are available: `TRANSIP_LOGIN`, `TRANSIP_PRIVATE_KEY`, `LOGLEVEL`, `LOGFILE`. Only the first two variables are required.

For information about values see `config/config.php.example`. Multiline values (the private key) can be a bit harder to set. Make sure the entire private key is stored in the `TRANSIP_PRIVATE_KEY` variable!

The application runs in the `/opt/certbot-dns-transip` directory and the certificates are created in `/etc/letsencrypt`.

```
docker run -ti \
--mount type=bind,source="${PWD}"/letsencrypt,target="/etc/letsencrypt" \
--mount type=bind,source="${PWD}"/config,target="/opt/certbot-dns-transip/config" \
--mount type=bind,source="${PWD}"/logs,target="/opt/certbot-dns-transip/logs" \
rbongers/certbot-dns-transip \
certonly --manual --preferred-challenge=dns  \
--manual-auth-hook=/opt/certbot-dns-transip/auth-hook \
--manual-cleanup-hook=/opt/certbot-dns-transip/cleanup-hook \
-d 'domain.com' -d '*.domain.com'
```

And to renew certificates:

```
docker run -ti \
--mount type=bind,source="${PWD}"/letsencrypt,target="/etc/letsencrypt" \
--mount type=bind,source="${PWD}"/config,target="/opt/certbot-dns-transip/config" \
--mount type=bind,source="${PWD}"/logs,target="/opt/certbot-dns-transip/logs" \
rbongers/certbot-dns-transip \
renew
```

Supported platforms
-------------------

[](#supported-platforms)

The code is tested on a Debian based Linux distribution (Ubuntu LTS) and currently supported PHP versions (&gt;= 7.4). It probably works fine on other systems and versions of PHP but no guarantees are made.

Upgrade guide
-------------

[](#upgrade-guide)

Version 2.0 is a complete rewrite of the code base and breaks with the original version. Follow these steps to upgrade:

1. Checkout the latest master branch
2. Follow the [installation guide](#installation)
3. Remove the `Transip` folder after copying your login and private key to `config/config.php`
4. You are ready to go!

Contributors
------------

[](#contributors)

When creating an issue please include a detailed description of what you are trying to execute and any output you receive. Feel free to fork the project and create a pull request. Make sure your code complies with the [PSR-12](https://www.php-fig.org/psr/psr-12/)coding standards.

###  Health Score

56

—

FairBetter than 98% of packages

Maintenance90

Actively maintained with recent releases

Popularity23

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity81

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 61% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~108 days

Recently: every ~285 days

Total

22

Last Release

76d ago

Major Versions

v2.8.0 → v3.0.02022-04-06

v3.0.2 → v4.0.02023-01-12

PHP version history (7 changes)2.0.0PHP ^7.1

v2.4.0PHP ^7.2

v2.5.0PHP ^7.2||^8.0

v2.5.1PHP ^7.3||^8.0

v3.0.0PHP ^7.4||^8.0

v4.0.1PHP ^8.0

v4.2.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/3999724251d0a6f6e53abe1c5d24cd3da1cf0a8e8dfac5b6045106ede196ddf9?d=identicon)[rbongers](/maintainers/rbongers)

---

Top Contributors

[![roy-bongers](https://avatars.githubusercontent.com/u/10220797?v=4)](https://github.com/roy-bongers "roy-bongers (687 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (355 commits)")[![dependabot-preview[bot]](https://avatars.githubusercontent.com/in/2141?v=4)](https://github.com/dependabot-preview[bot] "dependabot-preview[bot] (81 commits)")[![BasSmeets](https://avatars.githubusercontent.com/u/12895684?v=4)](https://github.com/BasSmeets "BasSmeets (1 commits)")[![kiwivogel](https://avatars.githubusercontent.com/u/3089920?v=4)](https://github.com/kiwivogel "kiwivogel (1 commits)")[![mhogerheijde](https://avatars.githubusercontent.com/u/1466140?v=4)](https://github.com/mhogerheijde "mhogerheijde (1 commits)")

---

Tags

certbotletsencryptphptransipwildcard-certificatesletsencrypttransipcertbotdns-01

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/roy-bongers-certbot-transip-dns-01-validator/health.svg)

```
[![Health](https://phpackages.com/badges/roy-bongers-certbot-transip-dns-01-validator/health.svg)](https://phpackages.com/packages/roy-bongers-certbot-transip-dns-01-validator)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.4k37.3k](/packages/matomo-matomo)[silverstripe/framework

The SilverStripe framework

7213.5M2.5k](/packages/silverstripe-framework)[tempest/framework

The PHP framework that gets out of your way.

2.1k23.1k9](/packages/tempest-framework)[elgg/elgg

Elgg is an award-winning social networking engine, delivering the building blocks that enable businesses, schools, universities and associations to create their own fully-featured social networks and applications.

1.7k15.7k5](/packages/elgg-elgg)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[concrete5/core

Concrete core subtree split

19159.3k48](/packages/concrete5-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
