Certbot (Let's Encrypt)

Hävettää myöntää, mutta en ollut tutustunut tähän mainioon työkaluun ennen eilistä (pe 6.3.2020 merkittäköön historian kirjoihin).
Sen sijaan olin tehnyt vanhasta tottumuksesta kaikkien SSL-sertifikaattieni hankinnan ja uusimisen käsin SSL For Free-sivuston kautta. Nyt tuntuu nörttinä pahasti jälkeenjääneeltä.

Certbot tulee nykyisin Linux-jakeluiden mukana helposti pakettihallinnan kautta ladattavana ohjelmana.
Olen tykästynyt Debianiin, joten lausuin loitsun
apt-get install certbot python-certbot-nginx
Näistä ensimmäinen paketti on itse certbot, jonka mukana asentuu melkoinen määrä muitakin paketteja. Jälkimmäinen on Nginx-palvelinta varten, jotta portin 80 liikennöinnin kautta voidaan varmistaa automaattisesti oikeus sertifikaatin hankintaan (ACME-protokolla).

Cert-botin käyttö on hyvin yksinkertaista. Sehän on sen kantava idea. SSL kaikille web-sivustoille niin helposti, ettei enää tarvi jättää käyttämättä.
Root-käyttäjänä ("pääkäyttäjä") ajetulla komennolla certbot --nginx (jos Nginx huolehtii portista 80 kuten itselläni) pääsee syöttämään admin contact sähköpostin ja hyväksymään käyttöehdot. Tämän jälkeen jatkossa toimii myös yksinkertainen suoraan vaikkapa skriptistä kutsuttu certbot --nginx -d host.domain.tld muotoinen loitsu.

Jos haluaisi vain luoda uusia varmenteita palvelimella olevalle web-sivutilalle, tämän pystyisi tekemään helposti loppuun asti (sertifikaattien asennusta myöten) esimerkiksi certbot --apache komennolla, jos ei olisi Nginx-etuproxyä käytössä portille 80. Tällöin käynnistäessä Certbot kyselee vain sen, mille kaikille sertifikaatti halutaan luoda. Ja tekee loput loppuun asti, jos konfiguraatiotiedostot on tehty oikein syntaksiltaan ja Certbot osaa asentaa kaiken kohdilleen.

Kuten arvata saattaa, yksinkertaisuudesta seuraa myös muutamia rajoitteita. Kuten se, että jokaista eri nimeä varten tarvii luoda oma sertifikaattinsa. Esimerkiksi www.terae.fi ja terae.fi ovat eri "domainit" (varmenteessa oleva DNS-nimi). Toki useimpia selaimia ei tunnu haittaavan, että sertifikaatti luodaan pelkälle www.terae.fi, jos on vaihtoehtona myös terae.fi josta seuraa redirect https-protokollan yli kohteeseen www.terae.fi.

Sertifikaatit (varmenteet) päätyvät helposti muistettavasti hakemistorakenteeseen seuraavasti:
SSLCertificateFile /etc/letsencrypt/live/www.terae.fi/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.terae.fi/privkey.pem

Käytin esimerkissä Apache2 formaattia ja tämän nettisivun www.terae.fi DNS-nimeä vastaavaa hakemistopolkua. Eli ainoastaan tuo DNS-nimeä vastaava osuus vaihtuu.

Certbotin helppouden ideologiaan kuuluu myös automaattinen uusinta, sillä nämä ilmaiset varmenteet ovat vain 3kk ajan voimassa. Cronjobina ajetaan tavanomaisesti päivittäin tarkitusajot sertifikaatin uusinnan tarpeelle ja mikäli tarpeen on, hankitaan uusi varmenne ennen kuin aikaisempi ehtii vanhentua. Ja täten SSL-käyttö voi jatkua saumattomasti ja huomaamatta päivitysprosessia.

Certbot hakee, kuten mainittu, tuttuja turvallisia Let's Encrypt sertifikaatteja. Näiden käyttö ei rajoitu pelkkiin web-sivutiloihin, vaan samaa sertifikaattia voi käyttää myös muihin tarkoituksiin. Esimerkiksi itselleni loin sähköpostipalvelimen ensisijaista DNS-nimeä ilolan.takaa.fi vastaavan sertifikaatin, jonka asensin MTA ja IMAPs käyttöjä varten.