Штатными средствами сертфикикат на поддомен duckdns получить выходит не всегда. Вот как это сделать с помощью специального плагина.

Ставить будем в обход пакетного менеджера. По причине того, что certbot и плагин к нему обновляются чаще, чем обновления прилетают в дистрибутивы. Для этого нам понадобится venv модуль для python:

apt install python3-venv

Ставить сам certbot будем в /opt

cd /opt
mkdir certbot && cd certbot
python3 -m venv .venv
source .venv/bin/activate
pip3 install certbot certbot-dns-duckdns

Теперь нужно войти в аккаунт duckdns через браузер и скопировать оттуда имя домена, а также токен. После этого можно запустить процесс получения сертификата такой командой:

DUCKDNS_TOKEN="99999-9999-4d95-bbf4-47910a4d5e13" ./venv/bin/certbot certonly --authenticator dns-duckdns --agree-tos --preferred-challenges=dns -d "yourdomain.duckdns.org"

В случае успеха полученные сертификаты будут лежать в /etc/letsencrypt.