Skip to content

Let's Encrypt pro Kohu a VuFind

radiuscz edited this page Sep 20, 2020 · 28 revisions

Získání certifikátu Let's Encrypt

Přihlásit se do systému jako root a přepnout se do root adresáře

# cd /root

Vytvořit složku pro skript certbotu a přepnout se do ní

mkdir ./lets-encrypt
cd ./lets-encrypt

Stáhnout certbot a umožnit spouštění

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

Doinstalovat chybějící systémové závislosti. Certbot bude chtít odsouhlasit licenci, nastavit notifikační e-mail a případně povolit/zakázat zasílání newsletteru

./certbot-auto

Vyžádat nový certifikát pro všechny potřebné domény; EXAMPLE.CZ nahradit za skutečnou doménu

Apache

./certbot-auto certonly --standalone --pre-hook "service apache2 stop" --post-hook "service apache2 start" -d koha.EXAMPLE.CZ,koha-intra.EXAMPLE.CZ,katalog.EXAMPLE.CZ,stats.EXAMPLE.CZ

Nginx

./certbot-auto certonly --standalone --pre-hook "service nginx stop" --post-hook "service nginx start" -d koha.EXAMPLE.CZ,koha-intra.EXAMPLE.CZ,katalog.EXAMPLE.CZ,stats.EXAMPLE.CZ

Úspěšně vytvořený certifikát bude potvrzen zprávou

Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/koha.EXAMPLE.CZ/fullchain.pem.

Všimněte si, že pouze první doména je hlavním jménem certifikátu pro koha.EXAMPLE.CZ, ostatní se stávají alternativními jmény.

Použití certifikátu

Dle konfigurace systému pokračujte kapitolou pro Apache nebo nginx

Apache

Vytvořit permanentní přesměrování HTTP na HTTPS, např. pro vufind v souboru /etc/apache2/conf-enabled/vufind2.conf

NameVirtualHost *:80
<VirtualHost *:80>
     ServerAdmin root@EXAMPLE.CZ
     ServerName vufind.EXAMPLE.CZ
     DocumentRoot /usr/local/vufind2/public
     Redirect permanent / https://vufind.EXAMPLE.CZ/
</VirtualHost>
<VirtualHost _default_:443>
     ServerName vufind.EXAMPLE.CZ
     SSLEngine On
     SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
     SSLCertificateFile      /etc/letsencrypt/live/koha.EXAMPLE.CZ/cert.pem
     SSLCertificateKeyFile   /etc/letsencrypt/live/koha.EXAMPLE.CZ/privkey.pem
     SSLCertificateChainFile /etc/letsencrypt/live/koha.EXAMPLE.CZ/chain.pem
     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
     Protocols             h2 http/1.1
     SSLHonorCipherOrder     on

...atd...
</VirtualHost>

Povolit SSL modul a restartovat apache

a2enmod ssl
service apache2 restart

nginx

Vytvořit permanentní přesměrování HTTP na HTTPS, např. pro vufind v souboru /etc/nginx/sites-enabled/vufind

server {
    listen 80;
    server_name vufind.EXAMPLE.CZ;
    return 301 https://vufind.EXAMPLE.CZ$request_uri;
}

server {
    listen 443 ssl;
    server_name vufind.EXAMPLE.CZ;
    
    ssl_certificate /etc/letsencrypt/live/koha.EXAMPLE.CZ/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/koha.EXAMPLE.CZ/privkey.pem;
    ssl_protocols	TLSv1 TLSv1.1 TLSv1.2;
...atd...
}

Restartovat nginx

service restart nginx

Vytvoření cronu pro automatickou obnovu certifikátu

Vytvořit soubor /root/lets-encrypt/certbot-renew a vložit do něj následující obsah dle konfigurace systému

Apache

#!/bin/bash

/root/lets-encrypt/certbot-auto renew -n --pre-hook "service apache2 stop" --post-hook "service apache2 start"

nginx

#!/bin/bash

/root/lets-encrypt/certbot-auto renew -n --pre-hook "service nginx stop" --post-hook "service nginx start"

Umožnit spouštění certbot-renew

chmod a+x /root/lets-encrypt/certbot-renew

Naplánovat pravidelné spouštění v cronu, např v souboru /etc/cron.d/letsencrypt s tímto obsahem

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

06 2 * * * root /root/lets-encrypt/certbot-renew > /dev/null 2>&1

Nezapomeňte

po přechodu na SSL zabezpečení se změní URL. Pokud využíváte pro tisk doplněk JS Print Setup, je potřeba ověřit, jestli máte povolen tisk ze všech URL nebo pouze z vybraných. Pokud tu druhou variantu, přidejte nové https URL do seznamu povolených. Při některých tiscích, jako například u rezervačního lístku, je potřeba ještě povolit vyskakovací okno z nové adresy.

Pro pokročilejší nastavení zabezpečení pokračujte na stránce Pokročilé nastavení HTTPS

Clone this wiki locally