Letsencrypt SSL-varmenne

TKO-wiki
Loikkaa: valikkoon, hakuun

Historia

members- ja muiden loginien salaamisesta on ollut puhetta vuosia, mutta 10.2.2016 saatiin lopulta aikaiseksi hakea letsencrypt-varmenne ja 12.2.2016 sitä täydennettiin (lisättiin DNS-nimiä). Pienen säädön jälkeen alustavasti rv.tko-aly.fi, kjyr.tko-aly.fi, members.tko-aly.fi ja tko-aly.fi muutettiin tässä järjestyksessä uudelleenohjaamaan http-kyselyt https-kyselyiksi.

Miten

haba:/srv/letsencrypt# ./letsencrypt-auto certonly -c cli.ini
...
... letsencrypt päivittää itsensä jne
...
haba:/srv/letsencrypt# chmod 0440 /etc/letsencrypt/archive/tko-aly.fi/privkey*

Nyt on syntynyt hakemistoon /etc/letsencrypt/archive/tko-aly.fi/ uudet kolme tiedostoa järjestyksessä seuraavalla numerolla, esimerkiksi:

haba:/srv/letsencrypt# ls -la /etc/letsencrypt/archive/tko-aly.fi/
total 40
drwxr-xr-x 2 root root 4096 Feb 12 10:00 .
drwx------ 3 root root 4096 Feb 10 16:23 ..
-rw-r--r-- 1 root root 2224 Feb 10 16:23 cert1.pem
-rw-r--r-- 1 root root 2301 Feb 12 10:00 cert2.pem
-rw-r--r-- 1 root root 1675 Feb 10 16:23 chain1.pem
-rw-r--r-- 1 root root 1675 Feb 12 10:00 chain2.pem
-rw-r--r-- 1 root root 3899 Feb 10 16:23 fullchain1.pem
-rw-r--r-- 1 root root 3976 Feb 12 10:00 fullchain2.pem
-r--r----- 1 root root 3272 Feb 10 16:23 privkey1.pem
-r--r----- 1 root root 3272 Feb 12 10:00 privkey2.pem
haba:/srv/letsencrypt#
  • cert2.pem sisältää pelkän lopullisen TKO-älyn varmenteen jota TKO-älyn www-sivusto käyttää (lehtivarmenteen, leaf certificate) jossa subjAltNamessa on cli.inissä mainitut hallintoaluetunnukset / laitenimet.
  • chain2.pem sisältää välillisten varmentajien (intermediate certificate authority) ketjun varmenteet.
  • fullchain2.pem sisältää kaikki varmenteet, siis sekä varsinaisen *.tko.aly.fi:n käyttämän että sen varmentavien tahojen varmenteet. Tämän voi itse tehdä komennolla "cat cert2.pem chain2.pem > fullchain2.pem", eli siinä ei ole mitään taikaa.
  • privkey2.pem sisältää TKO-älyn varmenteen salaisen avaimen - älä hukkaa, muuta non-world-readableksi!


Apachen määrittelyissä näitä käytetään seuraavasti:

  • SSLCertificateFile = voi olla joko cert.pem tai fullchain.pem
  • SSLCertificateChainFile = chain.pem
  • SSLCertificateKeyFile = privkey.pem

Periaatteessa kannattaa aina tarjota asiakkaalle varmenteen lisäksi ketjun muut osat. Tämän voi tehdä joko tarjoamalla varmenteena fullchain2.pemin ilman chain2.pemiä erikseen, tai tarjoamalla varmenteina erikseen sekä lopullisen TKO-älyn varmenteen että chain2.pemin.

Toteutus on nyt jälkimmäinen koska se tuntuu toimivan, eli määrittely kahdella apache-komennolla varmenne itsekseen ja chain.pem päälle. Kaikkien www-sivujen ssl-puolen tiedostossa relevantit rivit ovat samat:

         SSLEngine on
         SSLCertificateFile      /etc/letsencrypt/live/tko-aly.fi/cert.pem
         SSLCertificateChainFile /etc/letsencrypt/live/tko-aly.fi/chain.pem
         SSLCertificateKeyFile   /etc/letsencrypt/live/tko-aly.fi/privkey.pem

Varmenteen päivitys

Sama komento kuin yllä:

haba:/srv/letsencrypt# ./letsencrypt-auto certonly -c cli.ini
...
... letsencrypt päivittää itsensä jne
...
haba:/srv/letsencrypt# chmod 0440 /etc/letsencrypt/archive/tko-aly.fi/privkey*

Letsencrypt-auto päivittää konffissa mainitut /live/-symlinkit osoittamaan uusimpiin generoituihin sertifikaatteihin ja avaimiin itse joten yleensä sertifikaattien uusimiseen riittää ajaa letsencrypt-auto ja uudelleenkäynnistää Apache.