====== Zertifikate - Let's encrypt ====== https://www.c-rieger.de/nextcloud-installationsanleitung/ **Voraussetzung**: * Eine lauffähige Webserver-Umgebung, wie z.B. in der [[server:hc|]] * Ports 80 und 443 müssen im Router freigeschaltet sein und auf diesen Server zeigen. ===== Vorbereitungen ===== sudo -i apt install socat ===== Firewall ===== ufw allow 80/tcp ufw allow 443/tcp systemctl restart ufw ufw status ===== Diffie-Hellmann Schlüssel ===== sudo -i openssl dhparam -dsaparam -out /etc/ssl/dhparam.pem 4096 ===== Testzertifikate ===== apt install ssl-cert make-ssl-cert generate-default-snakeoil -y ===== Let's encrypt ===== sudo -i # Vorbereitungen # Verzeichnisse und Berechtigungen mkdir -p /var/www/letsencrypt/.well-known/acme-challenge chmod -R 775 /var/www/letsencrypt chown -R www-data:www-data /var/www/ mkdir -p /etc/letsencrypt/certs-rsa mkdir -p /etc/letsencrypt/certs-ecc chmod -R 770 /etc/letsencrypt chown -R www-data:www-data /etc/letsencrypt # ACME Benutzer erzeugen adduser --disabled-login acmeuser usermod -a -G www-data acmeuser visudo ... # User privilege specification root ALL=(ALL:ALL) ALL acmeuser ALL=NOPASSWD: /bin/systemctl reload nginx.service ... # ACME Installation su - acmeuser curl https://get.acme.sh | sh exit # Let's encrypt als Standard-CA für den Server su - acmeuser -c ".acme.sh/acme.sh --set-default-ca --server letsencrypt" # Zertifikate als User acme beantragen su - acmeuser # RSA acme.sh --issue -d --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/certs-rsa/-key.pem --ca-file /etc/letsencrypt/certs-rsa/-chain.pem --cert-file /etc/letsencrypt/certs-rsa/-crt.pem --fullchain-file /etc/letsencrypt/certs-rsa/-crt+chain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service" # ECC acme.sh --issue -d --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/certs-ecc/-key.pem --ca-file /etc/letsencrypt/certs-ecc/-chain.pem --cert-file /etc/letsencrypt/certs-ecc/-crt.pem --fullchain-file /etc/letsencrypt/certs-ecc/-crt+chain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service" exit # Kontrolle cron Job für ACME User crontab -l -u acmeuser