We zijn in het proces van overgang naar een nieuwe leverancier.

Alle documentatie rondom de nieuwe leverancier, procedures en FAQs vind je vanaf nu op de SURF User Knowledge Base

Deze wiki dient nog ter informatie over de oude situatie en wordt niet verder bijgewerkt.

.

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:

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 Sectigo natuurlijk alleen certificaten van Sectigo. Omdat er tijdens configuratie een link wordt gelegd naar je SCM account kan je via ACME in dit geval ook OV en EV certificaten laten uitgeven.

Webinar - SURFcertificaten beheren via het ACME-protocol

Op 27 november en 28 november hebben we een webinar gegeven over de implementatie van SURFcertificaten via het ACME-protocol. Het webinar van 28 november is terug te zien via onderstaande video.

Webinar SURFcertificaten beheren via het ACME protocol .mp4

Implementatie

Voor het gebruik van ACME wordt op de machine die een certificaat nodig heeft een client geïnstalleert, Sectigo 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 Sectigo® Certificate Manager Administrator’s Guide (SCMAG), maar hier in het kort:

  • Maak in SCM een ACME account aan via Enrollment → ACME → GEANTOV of GEANTEV (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).
  • 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 jdr@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 eerste registratie van een ACME account gebruik gemaakt van External Account Binding (EAB). Dit is eenmalig, en in dit proces wordt sleutelmateriaal gegenereerd waarmee deze specifieke client aan de ACME server wordt gelinkt. Dit zorgt er voor dat er via SCM een koppeling wordt 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, ondanks dat deze wel wordt gesuggereerd in de interface. 

Als je de scope wil beperken tot een specifiek subdomein , voeg je deze eerst in SCM toe onder 'Domains'. Voor een subdomein hoef je geen extra DCV te doen. 

Speciale certificaten

Bij de standaard GÉANTOV en GÉANTEV endpoints kan je niet configureren wat voor certificaat je krijgt. Dit is een 'normaal' OV/EV certificaat met de default geldigheid en algoritmes. Voor andere wensen kan je een account aanmaken op endpoint https://acme.enterprise.sectigo.com. Dit endpoint is nog in bèta, en er kunnen wijzigingen aan de configuratie gedaan worden die implementaties aan de client-kant niet meer doen werken. Via dit endpoint kunnen alle Soorten Certificaten worden aangevraagd. Voor Grid certificaten gebruik je bijvoorbeeld profile: "04 GÉANT IGTF Multi-Domain"

Specifieke appliances

  • Op linux/unix is certbot de de-facto standaard. lego (geschreven in Go) en dehydrated (een simpele laag op openSSL) zijn wat simpeler met minder dependencies e.d. er omheen dan certbot. 
  • Op Windows servers is Winacme is een veelgebruikte oplossing. Deze genereert i.c.m. Sectigo ACME wel warnings in de windows even logs (te voorkomen met --source iis --siteid s --installation iis, maar verdiep je eerst zelf in deze parameters om te kijken of dit ook in jouw geval kan). Een andere optie met UI is CertifyTheWeb, wat erg intuitief werkt. 
  • HAproxy heeft ingebouwde ondersteuning voor acme.sh met een hoog 'it just works' gehalte.
  • Citrix Netscaler ADC. De plugins die Sectigo normaliter aanbied voor deze toepassing vallen niet binnen het GÉANT contract. Het is echter 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. 
  • Azure (Key Vault), de plugins die Sectigo normaliter aanbied voor deze toepassing vallen niet binnen het GÉANT contract. Er zijn wel gedocumenteerde mogelijkheden voor PowerShell en ACME met Azure Key Vault
  • HashiCorp Vault ondersteunt ACME via de PKI secrets engine
  • Ansible kan met acme_certifcate certificaten ophalen


  • No labels