Штатными средствами сертфикикат на поддомен 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.