HARICA ondersteunt ACME (Automated Certificate Management Environment), een open standaard voor het automatisch installeren en vernieuwen van servercertificaten (zie RFC 8555 en https://www.acmeisuptime.com/). Zeker gezien het geplande inkorten van de levensduur van certificaten verwachten we dat ACME op termijn de standaardmanier van certificaataanvragen wordt.

ACME is oorspronkelijk ontwikkeld door de Internet Security Research Group (ISRG), de partij achter Let's Encrypt. Veel ACME clients, documentatie, en zelfs de directories die certbot aanmaakt bevatten verwijzingen naar Let's Encrypt. Desondanks gebruikt ACME via HARICA natuurlijk alleen certificaten van HARICA. 

Er zijn bij HARICA drie smaken ACME:

NaamStatusSoort CertificatenValidatiesScope
Enterprise AdminStandaardTLS OVin plaats van ACME-challenges worden de validaties in CertManager (in de lijst met domeinen) gebruikt(sub)domeinen zowel met include als exclude configureerbaar in CertManager
Enterprise User (Eindgebruikers)Handmatig in te schakelenTLS DVgebruiker moet altijd een ACME-challenge (http of dns) voor domeinvalidatie doenalle domeinen binnen de Enterprise
Enterprise GroupToekomstige FunctionaliteitTLS OVnog niet volledig uitgewerkt(sub)domeinen beperkt door toewijzing aan specifieke groepen in CertManager, de groep beheert de eigen validaties

In álle gevallen moet een domein al aan de Enterprise zijn toegevoegd 

ACME voor Enterprise Admins

Dit is de standaard implementatie van ACME, die qua functionaliteit overeenkomt met wat we gewend waren bij de vorige leverancier: Enterprise Admins maken EAB-credentials aan die voor specifieke domeinen gebruikt kunnen worden. Het is hierbij mogelijk om in je ACME client domeinvalidatie over te slaan.

  • Ga naar "Enterprise" → "Admin" en selecteer dan het tabblad "ACME" bovenaan:
  • Hier kan vervolgens het beheer worden uitgevoerd. Er kunnen accounts gemaakt worden met "Create+". De friendly name is hier bedoeld als identificatie in de lijst met accounts:

  • Als het account is aangemaakt moet je de scope van domeinen bepalen. Selecteer hiervoor het account en ga naar het tabblad "Domains":
  • Gebruik hierna de EAB credentials onder "Details" in je favoriete ACME client of communiceer ze via een veilig kanaal naar de beheerder die er mee aan de slag gaat.

ACME voor Eindgebruikers

Dit is een extra implementatie van ACME, die qua functionaliteit overeenkomt met Let's Encrypt: eindgebruikers krijgen (met een persoonlijke HMAC key) toegang tot een ACME-server waarop ze certificaten kunnen aanvragen, zo lang ze maar DCV kunnen doen tijdens de ACME transactie.

  • Inschakelen gebeurt eenmalig door een Enterprise Admin via Enterprise → Admin → Enterprise selecteren → Op de organisatie onder "Legal Name" te klikken → rechtsboven op het knopje "tags" te drukken (plaatje van een label). Daar kan dan de schakelaar voor #ACME-Personal aangezet worden:


  • Hiermee wordt voor alle gebruikers in het linker menu onder "eSign Documents" een nieuwe knop ACME beschikbaar waarmee ACME accounts kunnen worden beheerd.


  • Bij het gebruik van Personal ACME moet er wel voor ieder certificaat een DNS-01 of HTTP-01 challenge gedaan worden en de HMAC key worden opgegeven. 

Implementatie

Voor het gebruik van ACME wordt op de machine die een certificaat nodig heeft een client geïnstalleerd, HARICA geeft endpoints voor de server. De meestgebruikte ACME-client is certbot, maar ook andere clients die zich houden aan de ACME standaard werken, we noemen een aantal implementaties onderaan deze pagina. Certbot wordt typisch gebruikt op UNIX en Linux systemen, maar er zijn ook alternatieven voor Windows. Zie ook https://letsencrypt.org/docs/client-options/

De volledige beschrijving staat in de op https://guides.harica.gr/docs/Guides/Server-Certificate/ACME-Instructions/, maar hieronder geven we een voorbeeld. 

Gebruik van certbot met HARICA ACME Service
# install certbot
# See instructions at https://certbot.eff.org

# Register using ID and key for external account binding:
sudo certbot register --server  https://acme-v02.harica.gr/acme/0dfcc3bc-e336-4516-2b3a-61ceede7ca80/directory --eab-kid 3YR-QegGljgw5lMU76ol --eab-hmac-key DVJx8GBjZCdU3rQQ2ueVMXJg…Qw --email joga@example.edu --agree-tos

# Issue certificate for Apache Web Server:
sudo certbot --apache --domain acme-demo.surfcertificaten.nl --server https://acme-v02.harica.gr/acme/0dfcc3bc-e336-4516-2b3a-61ceede7ca80/directory

Overige parameters

  • Je krijgt standaard een ECC certificaat sinds certbot 2.0, dit kun je aanpassen door een "--key-type" mee te geven. 
  • Een email en agree-tos is altijd vereist voor HARICA en de meeste publieke CA's vanwege de acceptatie van de Subscriber Agreement en om contact op te nemen met de Subscriber in geval van revocation of andere communicatieredenen, zoals beschreven in de HARICA CP/CPS.

Specifieke appliances

  • Op Linux/Unix is certbot de de-facto standaard. Maar Lego (geschreven in Go) en dehydrated (een simpele laag op OpenSSL) zijn wat simpeler met minder afhankelijkheden.
  • Op Windows servers is Winacme is een veelgebruikte oplossing. Een andere optie met UI is CertifyTheWeb, wat erg intuïtief werkt. 
  • HAproxy heeft ingebouwde ondersteuning voor acme.sh met een hoog 'it just works' gehalte.
  • Citrix Netscaler ADC. Het is eenvoudig om op een losse Linux server certbot/dehydrated/lego te draaien om certificaten up-to-date te houden en met een post-hook het certificaat op de loadbalancer laden via de Netscaler API. 
  • HashiCorp Vault ondersteunt ACME via de PKI secrets engine
  • Ansible kan met acme_certifcate certificaten ophalen maar heeft op het moment een breaking issue i.c.m. HARICA: https://github.com/ansible-collections/community.crypto/issues/923. HARICA heeft aangegeven andere implementaties op dit moment te prioriteren en af te wachten tot de maintainers van deze collection duidelijker hebben wat het probleem is.



  • No labels