====== Let's Encrypt mit dehydrated ======
Pakete:
  * ''dehydrated'' ''dehydrated-apache2'' ''apache2'' ''ssl-cert'' (Debian ab 11)
  useradd -r -s /bin/false -d /var/lib/dehydrated/ dehydrated
  gpasswd -a www-data ssl-cert
  systemctl restart apache2.service
# CA="https://acme-staging-v02.api.letsencrypt.org/directory"
DEHYDRATED_USER=dehydrated
DEHYDRATED_GROUP=ssl-cert
CONTACT_EMAIL=admin@example.com
  dpkg-statoverride --update --add dehydrated ssl-cert 2750 /var/lib/dehydrated
  dpkg-statoverride --update --add dehydrated ssl-cert 2750 /var/lib/dehydrated/acme-challenges
Letsencrypt Account anlegen:
  sudo -u dehydrated dehydrated --register --accept-terms
  ls -l /var/lib/dehydrated/accounts/*
server.lxht.de cname.lxht.de
dehydrated service anlegen:
  systemctl edit --full --force dehydrated.service
[Unit]
Description=get let's encrypt certificate via dehydrated
[Service]
Type=oneshot
User=dehydrated
Group=ssl-cert
WorkingDirectory=/var/lib/dehydrated
ExecStart=/usr/bin/dehydrated -c
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/var/lib/dehydrated
PrivateTmp=yes
Dafür sorgen, dass beim Aktualisieren der Zertifikate die Dienste neu gestartet werden:
  systemctl edit dehydrated.service
[Service]
ExecStartPost=+-/usr/sbin/service apache2 reload
ExecStartPost=+-/usr/sbin/service dovecot reload
ExecStartPost=+-/usr/sbin/service postfix reload
  systemctl start dehydrated.service
  journalctl -eu dehydrated.service
  systemctl edit --full --force dehydrated.timer
[Unit]
Description=get certificates with dehydrated
[Timer]
OnCalendar=*-*-3/3 17:45
Persistent=true
[Install]
WantedBy=timers.target
  systemctl enable --now dehydrated.timer
Apache- und OpenSSL-Version nachsehen ...
  dpkg -l apache2
  dpkg -l openssl
... und Konfiguration gemäß Vorlage von https://ssl-config.mozilla.org/  erstellen.
Je nach gewählter Konfiguration (modern, intermediate, old) wird eine Datei mit Diffie-Hellman Parametern benötigt.  
In den Kommentarzeilen steht falls nötig wie man die erstellen kann. Da wird je nach Auswahl vorgeschlagen, sie herunter zu laden. Alternativ kann man sie mit etwas Geduld auch selbst erstellen (hier für intermediate):
  openssl dhparam -out /etc/ssl/dhparam.pem  2048
# generated 2022-05-22, Mozilla Guideline v5.6, Apache 2.4.53, OpenSSL 1.1.1k, intermediate configuration
# https://ssl-config.mozilla.org/#server=apache&version=2.4.53&config=intermediate&openssl=1.1.1k&guideline=5.6
# this configuration requires mod_ssl, mod_socache_shmcb, mod_rewrite, and mod_headers
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
    SSLEngine on
    # curl https://ssl-config.mozilla.org/ffdhe2048.txt >> /path/to/signed_cert_and_intermediate_certs_and_dhparams
    SSLCertificateFile      /var/lib/dehydrated/certs/server.lxht.de/fullchain.pem
    SSLCertificateKeyFile   /var/lib/dehydrated/certs/server.lxht.de/privkey.pem
    # enable HTTP/2, if available
    Protocols h2 http/1.1
    # HTTP Strict Transport Security (mod_headers is required) (63072000 seconds)
    Header always set Strict-Transport-Security "max-age=63072000"
# intermediate configuration
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder     off
SSLSessionTickets       off
SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
  a2enmod ssl
  a2enmod socache_shmcb
  a2enmod rewrite
  a2enmod headers
  a2dissite 000-default
  a2enconf tls
TODO: muss dhparam.pem bei jedem neuen Zertifikat erneut an fullchain.pem angehangen werden?