Revision history  [back]

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

PÄIVITYS 15.11.2017: Acme-tinyyn on tullut päivitys joka lataa aina kulloisetkin lisenssiehdot automaatisesti kovakoodauksen sijaan, joten ne joilla on jo Acme-tiny niin päivittäkää se komennolla "git pull" kansiossa johon latasitte acme-tinyn.

Ensi kertaa tätä ohjetta seuraavat saavat automaattisesti uusimman version.

Ensin kertaluonteiset:

Pyydä ylläpidolta "Https käyttöön omalle domainille", jotta sivusi palvellaan oikealta palvelimelta. Ohjeet toimivat jokatapauksessa, mutta https toimii vasta pyynnön jälkeen. Eli voit valmistella https vaikka et vielä olisi pyytänytkään tuota. Sitten itse asiaan:

Ladataan Acme-tiny ja annetaan sille suoritusoikeudet:

git clone https://github.com/diafygi/acme-tiny.git
chmod u+x acme-tiny/acme_tiny.py

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate signing request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Let's encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-noncen varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus (Esimerkki ohjeiden lopussa). Luodaan Let's encryptin vaatima sijainti nonce:a varten:

mkdir -p ~/sites/domain.tld/www/.well-known/acme-challenge/

Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Let's encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Kun komennot suoriutuvat onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod u+x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Extra: .htaccess esimerkki, jossa ohjataan kaikki liikenne https, sekä alidomainin uudelleenohjaus + näille säännöille Lets encrypt poikkeus jotta Acme-tiny voi toimia oikein:

# Ohjaa kaikki liikenne HTTPS, paitsi Lets Encrypt
RewriteEngine On
RewriteCond %{ENV:HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC]

# Ohjaa "mail" alidomain uudelle palvelimelle, paitsi Lets Encrypt
RewriteCond %{HTTP_HOST} ^mail\.domain\.tld$ [NC]
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule (.*)$ https://mail.google.com/a/domain.tld [L,R=302,NC]

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

PÄIVITYS 15.11.2017: Acme-tinyyn on tullut päivitys joka lataa aina kulloisetkin lisenssiehdot automaatisesti kovakoodauksen sijaan, joten ne joilla on jo Acme-tiny niin päivittäkää se komennolla "git pull" kansiossa johon latasitte acme-tinyn.

Ensi kertaa tätä ohjetta seuraavat saavat automaattisesti uusimman version.

Ensin kertaluonteiset:

Pyydä ylläpidolta "Https käyttöön omalle domainille", jotta sivusi palvellaan oikealta palvelimelta. Ohjeet toimivat jokatapauksessa, mutta https toimii vasta pyynnön jälkeen. Eli voit valmistella https vaikka et vielä olisi pyytänytkään tuota. Sitten itse asiaan:

Ladataan Acme-tiny ja annetaan sille suoritusoikeudet:

git clone https://github.com/diafygi/acme-tiny.git
chmod u+x acme-tiny/acme_tiny.py

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate signing request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Let's encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-noncen varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus (Esimerkki ohjeiden lopussa). Luodaan Let's encryptin vaatima sijainti nonce:a varten:

mkdir -p ~/sites/domain.tld/www/.well-known/acme-challenge/

Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Let's encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Kun komennot suoriutuvat onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod u+x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Extra: .htaccess esimerkki, jossa ohjataan kaikki liikenne https, sekä alidomainin uudelleenohjaus + näille säännöille Lets encrypt poikkeus jotta Acme-tiny voi toimia oikein:

# Ohjaa kaikki liikenne HTTPS, paitsi Lets Encrypt
RewriteEngine On
RewriteCond %{ENV:HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC]

# Ohjaa "mail" alidomain uudelle palvelimelle, paitsi Lets Encrypt
RewriteCond %{HTTP_HOST} ^mail\.domain\.tld$ [NC]
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule (.*)$ https://mail.google.com/a/domain.tld [L,R=302,NC]

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

Ensin kertaluonteiset:

Pyydä ylläpidolta "Https käyttöön omalle domainille", jotta sivusi palvellaan oikealta palvelimelta. Ohjeet toimivat jokatapauksessa, mutta https toimii vasta pyynnön jälkeen. Eli voit valmistella https vaikka et vielä olisi pyytänytkään tuota. Sitten itse asiaan:

Ladataan Acme-tiny ja annetaan sille suoritusoikeudet:

git clone https://github.com/diafygi/acme-tiny.git
chmod u+x acme-tiny/acme_tiny.py

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate signing request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Let's encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-noncen varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus (Esimerkki ohjeiden lopussa). Luodaan Let's encryptin vaatima sijainti nonce:a varten:

mkdir -p ~/sites/domain.tld/www/.well-known/acme-challenge/

Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Let's encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Kun komennot suoriutuvat onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod u+x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Extra: .htaccess esimerkki, jossa ohjataan kaikki liikenne https, sekä alidomainin uudelleenohjaus + näille säännöille Lets encrypt poikkeus jotta Acme-tiny voi toimia oikein:

# Ohjaa kaikki liikenne HTTPS, paitsi Lets Encrypt
RewriteEngine On
RewriteCond %{ENV:HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC]

# Ohjaa "mail" alidomain uudelle palvelimelle, paitsi Lets Encrypt
RewriteCond %{HTTP_HOST} ^mail\.domain\.tld$ [NC]
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule (.*)$ https://mail.google.com/a/domain.tld [L,R=302,NC]

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

Ensin kertaluonteiset:

Ladataan Acme-tiny ja annetaan sille suoritusoikeudet:

git clone https://github.com/diafygi/acme-tiny.git
chmod u+x acme-tiny/acme_tiny.py

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate signing request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Let's encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-noncen varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus (Esimerkki ohjeiden lopussa). . Luodaan Let's encryptin vaatima sijainti nonce:a varten:

mkdir -p ~/sites/domain.tld/www/.well-known/acme-challenge/

Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Let's encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Kun komennot suoriutuvat onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod u+x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Extra: .htaccess esimerkki, jossa ohjataan kaikki liikenne https, sekä alidomainin uudelleenohjaus + näille säännöille Lets encrypt poikkeus jotta Acme-tiny voi toimia oikein:

# Ohjaa kaikki liikenne HTTPS, paitsi Lets Encrypt
RewriteEngine On
RewriteCond %{ENV:HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC]

# Ohjaa "mail" alidomain uudelle palvelimelle, paitsi Lets Encrypt
RewriteCond %{HTTP_HOST} ^mail\.domain\.tld$ [NC]
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule (.*)$ https://mail.google.com/a/domain.tld [L,R=302,NC]

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

Ensin kertaluonteiset:

Ladataan Acme-tiny ja annetaan sille suoritusoikeudet:

git clone https://github.com/diafygi/acme-tiny.git
chmod u+x acme-tiny/acme_tiny.py

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate signing request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Let's encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-noncen varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus. Luodaan Let's encryptin vaatima sijainti nonce:a varten:

mkdir -p ~/sites/domain.tld/www/.well-known/acme-challenge/

Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Let's encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Kun komennot suoriutuvat onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod u+x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

Ensin kertaluonteiset:

Ladataan Acme-tiny ja annetaan sille suoritusoikeudet:

git clone https://github.com/diafygi/acme-tiny.git
chmod u+x acme-tiny/acme_tiny.py

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate signing request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Let's encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-noncen varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus. Luodaan Let's encryptin vaatima sijainti nonce:a varten:

mkdir -p ~/sites/domain.tld/www/.well-known/acme-challenge/

Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Let's encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Kun komennot suoriutuvat onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod u+x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

Ensin kertaluonteiset:

Ladataan Acme-tiny ja annetaan sille suoritusoikeudet:

git clone https://github.com/diafygi/acme-tiny.git
chmod u+x acme-tiny/acme_tiny.py

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Let's acme-tiny/Lets encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-noncen autentikaatio-tokenin varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus. Luodaan Let's encryptin vaatima sijainti nonce:a varten:

mkdir -p ~/sites/domain.tld/www/.well-known/acme-challenge/

poikkeus, mutta se on eri ohje sitten se. Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Let's Lets encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Kun komennot suoriutuvat komento suoriutuu onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod u+x +x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

Ensin kertaluonteiset:

Ladataan Acme-tiny ja annetaan sille suoritusoikeudet:Acme-tiny:

git clone https://github.com/diafygi/acme-tiny.git
chmod u+x acme-tiny/acme_tiny.py

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Lets encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-tokenin varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus, mutta se on eri ohje sitten se. Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Lets encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Kun komento suoriutuu onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod +x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

Ensin kertaluonteiset:

Ladataan Acme-tiny:

git clone https://github.com/diafygi/acme-tiny.git

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key domain.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Lets encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-tokenin varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus, mutta se on eri ohje sitten se. Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Lets encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Kun komento suoriutuu onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod +x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

Ensin kertaluonteiset:

Ladataan Acme-tiny:

git clone https://github.com/diafygi/acme-tiny.git

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:tiedostoon

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan "Certificate request" domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key domain.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Lets encrypt vaatii intuituion vastaisesti "pääsyn" suojaamattoman http-yhteyden yli autentikaatio-tokenin varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus, mutta se on eri ohje sitten se. Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Lets encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Kun komento suoriutuu onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod +x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log