Certifikat via Lets Encrypt och Certbot Först behövs snapd. Kommer per default med Ubuntu. Kontrollera installerade snap paket med  snap list Ta bort eventuella installation av certbot-auto och Certbot OS med  sudo apt-get remove certbot Installera certbot med  sudo snap install --classic certbot Förbered maskinen så att certbot-kommandot kan köras:  sudo ln -s /snap/bin/certbot /usr/bin/certbot Få ett certifikat och uppdatera apache-konf med  sudo certbot --apache , alternativt få enbart ett certifikat och uppdatera apache manuellt med  sudo certbot certonly --apache När du har fått ett certifikat, gör en backup av apache-konfen och skapa en ny apache-konffil:  sudo mv /etc/apache2/sites-available/bookstack.conf /etc/apache2/sites-available/bookstack.conf.old ,  sudo vim /etc/apache2/sites-available/bookstack.conf Ändra relevanta värden och skapa en ny apache-konfiguration (vhost): ServerName YOUR-DOMAIN-HERE RewriteEngine On RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L] ServerName YOUR-DOMAIN-HERE ServerAdmin webmaster@localhost DocumentRoot /var/www/bookstack/public/ SSLEngine on SSLCertificateFile /etc/letsencrypt/live/YOUR-DOMAIN-HERE/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/YOUR-DOMAIN-HERE/privkey.pem Options Indexes FollowSymLinks AllowOverride None Require all granted Options -MultiViews -Indexes RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Aktivera apaches SSL modul:  sudo a2enmod ssl Verifiera om det finns några fel med  sudo apachectl configtest  och åtgärda vid behov Redigera bookstacks .env-fil:  sudo vim /var/www/bookstack/.env , ändra  APP_URL  till HTTPS istället för HTTP Slutligen, starta om apache2!  sudo systemctl restart apache2 Skapa certifikat manuellt Först behövs ett värde för en dns-01 challenge: sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d \*.your-domain -d your-domain Byt ut värden ovanför till det som önskas. Exemplet ber om ett wildcard. Man kommer behöva lägga till ett värde i sin externa DNS-zon för validering. Certifikaten hamnar sedan i en  undermapp till  /etc/letsencrypt/live/ . Certifikat som har hämtats med certbot kan kontrolleras med  sudo certbot certificates . Certifikat kan tas bort med  sudo certbot delete . Vid förnyelse hade jag problem med att få ut en ny TXT-sträng för DNS validering. Borttagande av certifikat och skapande med nedan syntax för att få TXT värdet fungerade: sudo certbot certonly --manual --preferred-challenges=dns --email admin@jehrlander.net --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d jehrlander.net -d *.jehrlander.net Saving debug log to /var/log/letsencrypt/letsencrypt.log Requesting a certificate for jehrlander.net and *.jehrlander.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name: _acme-challenge.jehrlander.net. with the following value: xxxxxx - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -