Sectigo 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/). Op 30 november hebben we hier een presentatie over gegeven waarbij we ook alle stappen voor het installeren van certbot doorlopen:

De ACME client die wordt ondersteund is certbot, maar ook andere clients die zich houden aan de ACME standaard zouden moeten werken. Certbot wordt typisch gebruikt op UNIX en Linux systemen, maar er is ook een Windows client.

De volledige beschrijving staat in de Sectigo® Certificate Manager Administrator’s Guide (SCMAG), maar hier in het kort:

  • Maak in SCM een ACME account aan via Settings (zie SCMAG: How to Configure ACME Accounts for Organizations and Department)
  • Genereer client credentials (Key ID en HMAC Key). Deze zijn nodig voor External Account Binding tijdens registratie van de ACME client (zie hieronder). De status van het ACME account is tot die tijd "pending".
  • Beperk de scope met de domain allowlist (zie SCMAG: Using the Sectigo ACME Service.

Vervolgens kan de ACME client gebruikt worden. Tot het eerste gebruik zal het account op 'pending' blijven staan. Zie hieronder voor een voorbeeld.

Gebruik van certbot met Sectigo 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.sectigo.com/v2/GEANTOV --eab-kid 3YR-QegGljnw5lMU76ol --eab-hmac-key DVJx8GBjZCdU3rRQ2ueVMXJg…Qw --email jd@example.edu

# Issue certificate for Apache Web Server:
sudo certbot --apache --domain acme-demo.surfcertificaten.nl --server https://acme.sectigo.com/v2/GEANTOV

External Account Binding

Om OV of EV certificaten te kunnen beheren via ACME wordt bij registratie van een ACME account gebruik gemaakt van External Account Binding (EAB). Hiermee kan via SCM een koppeling worden gelegd met een organisatie en diens (reeds gevalideerde) domeinen.

EAB credentials kunnen in de cert-manager worden aangemaakt, en gebruikt worden voor meerdere ACME clients. Het key-ID en de HMAC key zijn daarmee dus long lived secrets en dienen als zodanig te worden beveiligd.

Scoping

Welke scope je een account geeft hangt van je risico-inschatting af. Als het account op één server met goed doordachte beveiliging staat kan je gerust meerdere domeinen aan een account geven, als het account op meerdere servers of bij een leverancier gebruikt wordt wil je de scope waarschijnlijk kleiner maken. 

Bij het aanmaken van het ACME account moet je domeinen selecteren. Hierbij geldt dat automatisch alle subdomeinen binnen scope vallen. Als je bijvoorbeeld surfcertificaten.nl toevoegt, is ook persoon.surfcertificaten.nl binnen scope. Het is dus niet nodig om de wildcard *.surfcertificaten.nl toe te voegen. 

Als je een specifiek subdomein binnen of buiten de scope van een ACME account wil houden, voeg je deze eerst in SCM toe onder 'Domains'. Voor een subdomein hoef je geen extra DCV te doen. 

  • Als je de scope wil beperken tot het subdomein maak je deze aan en geef je alleen dit domein op bij het aanmaken van het ACME account
  • Als je een subdomein wil uitsluiten (dus alle subdomeinen van surfcertificaten.nl behalve admin.surfcertificaten.nl) zorg je er voor dat je het subdomein aanmaakt, maar niet expliciet toevoegt aan de scope. 

Specifieke appliances

  • HAproxy heeft ingebouwde ondersteuning voor acme.sh met een hoog 'it just works' gehalte.
  • Azure, de plugins die Sectigo normaliter aanbied voor deze toepassing vallen niet binnen het GÉANT contract. Er zijn wel gedocumenteerde mogelijkheden voor ACME met Azure Key Vault
  • Citrix ADC, de plugins die Sectigo normaliter aanbied voor deze toepassing vallen niet binnen het GÉANT contract. Dit moet dus met wat losse scripting om het certificaat te verkrijgen en op de juiste manier aan te bieden. We hebben hier nog geen specifieke uitwerking van.

Meer presentaties

Zijn te vinden op de wiki van GEANT: https://wiki.geant.org/display/TCSNT/TCS+Training


  • No labels