TELIA VARMENNEPALVELUN ACME

Yleistä ACME-protokollasta

ACME (Automatic Certificate Management Environment) on Internet-standardissa RFC8555 määritelty tapa hoitaa palvelinvarmenteiden asentaminen ja uusinta täysin automaattisesti. ACME koostuu varmennepalvelun tarjoajan palvelusta, johon asiakkaan verkkopalvelimella oleva ACME-asiakasohjelmisto ottaa yhteyden silloin, kun varmenne luodaan ensi kertaa tai uusitaan.

Telian ACME-palvelu

Telia tarjoaa ACME-palvelua Domain Validated (DV), Organization Validated (OV) ja yksityisten TLS-tyyppisten varmenteiden luontiin. Palvelu on osa Telia varmennepalvelun FullSSL-itsepalveluportaalia. Asiakas tekee Telian kanssa maksuttoman sopimuksen varmenneitsepalvelun käyttöönotosta ja Telia varmistaa asiakkaan yritys- ja pääkäyttäjätiedot. Tämän jälkeen asiakkaan pääkäyttäjät voivat luoda ACME-tunnuksia Secure Manager-itsepalveluportaalilla. Varmenteet laskutetaan kuukausittain FullSSL-palvelun laskutuksen yhteydessä. Asiakas saa myös samalla mahdollisuuden tehdä varmenteita perinteisellä CSR-menetelmällä itsepalvelun kautta manuaalisesti.

Kuten CSR-menetelmässä, ACMElla käytettäessä verkkotunnuksen etuliitettä www., esimerkiksi www.yritys.fi, saadaan varmenteeseen ilmaiseksi mukaan muoto yritys.fi. Tällöin sivusto toimii normaalisti mentäessä sille ilman www-etuliitettä.

Autentikoituminen hoidetaan käyttäen Extended Account Binding-menetelmää, joka koostuu Secure Managerilla itsepalveluna luodusta KID/HMAC-käyttäjätunnuksesta ja näistä muodostuvasta avaimesta.

Asiakasohjelma

Automaattinen ACME tarvitsee asiakasohjelman hoitamaan varmenteiden luomista ja uusimista palvelimella. Asiakasohjelmistoja on useita. Ne ovat pääosin vapaita ohjelmistoja, jotka ladataan netistä ja asennetaan palvelimelle. Tunnetuimmat ACME-asiakasohjelmat ovat lego ja certbot. ACME-asiakasohjelmat tulee asettaa tukemaan Telian varmennepalvelua seuraavilla ohjeilla. Lego on suositeltavaa asentaa Docker-asennuksena.

Validointi ja varmenteen luonti ACMElla

Kuten aina julkisten varmenteiden luonnissa, verkkotunnuksen hallinta täytyy varmistaa ennen varmenteen luontia käyttäen varmenneyhteisön määrittelemiä tapoja. Telian varmennepalvelun ACME tukee kahta tapaa:

  • Http-haaste

  • Http-haasteessa ACME-palvelu varmistaa verkkotunnuksen hallinnan ACME-asiakasohjelmistolla. Asiakasohjelma kirjautuu ACME-tunnuksilla, rekisteröi käyttäjätunnuksen, saa validointitietueen ja asettaa validointitietueen luettavaksi. Telian ACME-palvelu lukee validointietueen ACME-ohjelman web-palvelimesta, vahvistaa verkkotunnuksen hallinnan, luo varmenteen ja toimittaa varmenteen ACME-asiakasohjelmalle. ACME-asiakasohjelma täytyy ajaa palvelimella, jolle on asetettu sama verkkotunnus, mikä tulee varmenteeseen. Huomioi, että portti 80 täytyy olla auki Internetiin, jotta haaste voidaan validoida ja palvelimen oma www-palvelinohjelmisto tulee olla ajettuna alas, jotta portti 80 on asiakasohjelman käytössä. Http-haastetta ei voi käyttää verkoissa, joihin ei pääse Internetistä eikä validointia voi suorittaa manuaalisesti palvelimen omalla www-palvelinohjelmistolla.

    Esimerkkikomento legolla:

    lego -s https://acme.trust.telia.com/directory -m testi.osoite@company.com -a --eab --kid x50y04z3-3d34-429e-00fa-b4c8d04e3471 --hmac ObzSkX2tq3PdSxPuA-iqw6fooPdA2aZRbarER739OPM -d www.acmedemodomain.fi --http

    • -s https://acme.trust.telia.com/directory

      Telian ACME-palvelun osoite

    • -m testi.osoite@company.com

      Asettaa ACME-kontaktikentän omaksi sähköpostiosoitteeksi

    • -a

      Hyväksyy automaattisesti ACME-palvelun käyttöehdot

    • --eab

      Lego käyttää EAB-menetelmää käyttäjätilin rekisteröinnissä

    • --kid x50y04z3-3d34-429e-00fa-b4c8d04e3471

      EAB-asiakastunniste, joka tunnetaan ACME-standardissa lyhenteellä KID

    • --hmac ObzSkX2tq3PdSxPuA-iqw6fooPdA2aZRbarER739OPM

      EAB-avain, joka tunnetaan ACME-standardissa lyhenteellä HMAC

    • -d www.acmedemodomain.fi

      Verkkotunnus, jolle varmennetta pyydetään

    • --http

      Käytettävä haastetapaa

    • run

      Legon komento, joka ajaa käyttäjätunnuksen rekisteröinnin (jos sitä ei ole tehty aiemmin) ja pyytää varmenteen

  • DNS-haaste

  • DNS-haasteessa validointidata laitetaan nimipalveluun, josta ACME-palvelu lukee datan ja vahvistaa verkkotunnuksen hallinnan. Yksinkertaisimmin DNS-haaste toimii niiden nimipalveluiden kanssa, joilla on ACME-asiakasohjelmassa tuettu rajapinta, jonka kauttaa validointidata voidaan päivittää nimipalveluun. Legossa on tuki useille nimipalveluntarjoajille valmiina. Telian tarjoama verkkotunnusten hallintapalvelu ei vielä tarjoa rajapintaa. Tapauksissa, joissa käytetty nimipalvelu ei tue rajapintaa, on mahdollista rakentaa rajapinta Designate DNSaaS for OpenStack-palvelun avulla. Jos rajapintaa ei ole mahdollista käyttää, DNS-haaste on tehtävissä manuaalisesti nimipalvelua päivittämällä.

    Esimerkkikomento legolla käyttäen Amazonin Route53-nimipalvelua:

    lego -s https://acme.trust.telia.com/directory -m testi.osoite@company.com -a --eab --kid x50y04z3-3d34-429e-00fa-b4c8d04e3471 --hmac ObzSkX2tq3PdSxPuA-iqw6fooPdA2aZRbarER739OPM -d www.acmedemodomain.fi --dns route53 run

    • -s https://acme.trust.telia.com/directory

      Telian ACME-palvelun osoite

    • -m testi.osoite@company.com

      Asettaa ACME-kontaktikentän omaksi sähköpostiosoitteeksi

    • -a

      Hyväksyy automaattisesti ACME-palvelun käyttöehdot

    • --eab

      Lego käyttää EAB-menetelmää käyttäjätilin rekisteröinnissä

    • --kid x50y04z3-3d34-429e-00fa-b4c8d04e3471

      EAB-asiakastunniste, joka tunnetaan ACME-standardissa lyhenteellä KID

    • --hmac ObzSkX2tq3PdSxPuA-iqw6fooPdA2aZRbarER739OPM

      EAB-avain, joka tunnetaan ACME-standardissa lyhenteellä HMAC

    • -d www.acmedemodomain.fi

      Verkkotunnus, jolle varmennetta pyydetään

    • --dns route53

      Käytettävä haastetapa ja käytetyn nimipalveluntarjoajan koodi. Tämä Amazonin nimipalvelua käyttävä liitännäinen hakee käyttäjätunnukset joko ~/.aws/credentials -tiedostosta tai shell-ympäristömuuttujista

    • run

      Legon komento, joka ajaa käyttäjätunnuksen rekisteröinnin (jos sitä ei ole tehty aiemmin) ja pyytää varmenteen

    Esimerkkikomento legolla käyttäen manuaalista DNS-haastetta:

    lego -s https://acme.trust.telia.com/directory -m testi.osoite@company.com -a --eab --kid x50y04z3-3d34-429e-00fa-b4c8d04e3471 --hmac ObzSkX2tq3PdSxPuA-iqw6fooPdA2aZRbarER739OPM -d www.acmedemodomain.fi --dns manual -a run

    Komento on muuten vastaava kuin tuettuja nimipalveluita käytettäessä paitsi nimipalvelun nimi on korvattu määritteellä "manual". Manuaalisessa menettelyssä lego esittää validointidatan ruudulla näin:

    [INFO] [acmedemodomain.fi] acme: use dns-01 solver
    [INFO] [acmedemodomain.fi] acme: Preparing to solve DNS-01
    lego: Please create the following TXT record in your acmedemodomain.fi. zone:
    _acme-challenge.acmedemodomain.fi. 120 IN TXT "dry1RBuUONWZ31n9sF-awbcLdognozJbFV284oAI"
    lego: Press 'Enter' when you are done

    Kun validointidata on asetettu nimipalvelun hallintanäkymän kautta verkkotunnuksenne TXT-tietueeksi, rivinvaihdon painaminen suorittaa DNS-validoinnin ja ACME palauttaa varmenteen asiakasohjelmalle.

Asiakasohjelmiston muut toiminnot

ACME-asiakasohjelmistolla voidaan tehdä muita varmennetoimenpiteitä uuden varmenteen pyytämisen lisäksi. Legossa ovat tarjolla run-komennon lisäksi seuraavat:

  • revoke - poista varmenne käytöstä
  • renew - uudista varmenne
  • dnshelp - tulosta legon tukemat DNS-palveluntarjoajat
  • list - tulosta legon löytämät varmenteet ja niiden tiedot

Varmenteen asennus

Varmenteen asennuksen vaatimat toimet riippuvat käytetystä palvelimesta ja sillä ajetusta palvelusta. ACME-asiakasohjelman tallentama varmenne voidaan asentaa skripteillä tai cron-ajolla suoraan tai ajastetusti varmennetta hyödyntäviin sovelluksiin. Varmennusketjun juuri- ja välitason varmenteet sisältyvät legoa käytettäessä tallennettuun varmennetiedostoon.