SSL-certifikaternes maksimale levetid reduceres til 200 dage fra marts 2026. Læs mere →

Simple-ACME (win-acme): komplet Windows-guide

Simple-acme er den mest udbredte ACME-klient til Windows Server og en drop-in replacement for win-acme, bygget af den samme udvikler. Den kan bruges alle steder hvor win-acme bruges i dag. Denne guide dækker alt fra installation til produktion med FairSSL som ACME-server.

FairSSL er sponsor af simple-acme projektet.

Navnehistorik

Projektet har skiftet navn flere gange, hvilket kan skabe forvirring ved søgning:

  • 2017-2023 win-acme (WACS) af Wouter Tinus. Windows-only, .NET Framework.
  • 2024-nu simple-acme, fork med ny maintainer. Tværplatform (.NET 8), ARI-support, aktiv udvikling.

Domænet win-acme.com eksisterer stadig, men vi anbefaler simple-acme.com som kilde.

Download og krav

Trimmed (anbefalet) Anbefalet

Meget mindre download. Til FairSSL AutoDNS behøves ingen plugins, da FairSSL håndterer DNS-validering. Dækker de fleste opsætninger.

Pluggable

Alle plugins inkluderet: DNS-validering via egne DNS API-nøgler, PEM/PFX-eksport, Azure Key Vault. Brug denne hvis I har brug for direkte DNS API-integration eller specielle eksportformater.

  • OS: Windows Server 2012+ (x64). Linux beta tilgængelig.
  • Runtime: .NET 8 (følger med download).
  • Aktuel version: v2.3.5
  • Licens: Apache 2.0 (open source).
  • Installation: Pak ud til C:\Simple-Acme. Ingen installer, bare kopiér mappen. Scripts ligger i C:\Simple-Acme\Scripts.

Opsætning med FairSSL ACME-server

Før du starter simple-acme, skal du oprette EAB-legitimationsoplysninger i FairSSL kontrolpanelet. EAB (External Account Binding) knytter ACME-certifikater til jeres FairSSL-konto, så alle certifikater, klienter og fornyelser er synlige og overvågede.

1

Opret EAB-nøgler i FairSSL

Log ind på kontrolpanelet, gå til ACME og klik Tilslut ACME klient. Du får et Key ID og en HMAC Key.

2

Registrer konto med EAB

Kør simple-acme med FairSSL som server og EAB-nøglerne fra trin 1:

simple-acme.exe --register ^
  --baseuri https://fairssl.dk/acme/ ^
  --eab-key-identifier JERES_KEY_ID ^
  --eab-key JERES_HMAC_KEY ^
  --eab-algorithm HS256 ^
  --emailaddress jeres@email.dk ^
  --accepttos
3

Verificér registrering

Tjek i FairSSL kontrolpanelet at klienten er synlig under jeres ACME-profil. Kontoen er nu knyttet til FairSSL.

Server-URL: FairSSLs ACME-server URL er https://fairssl.dk/acme/. Den følger RFC 8555 og understøtter ARI (RFC 9773).

Interaktiv menu: dit første certifikat

Start simple-acme.exe uden argumenter for at åbne den interaktive menu. Ved første kørsel vælger du ACME-server og registrerer din konto.

 Please choose from the menu:
  N: Create certificate (default settings)
  M: Create certificate (full options)
  R: Run renewals (0 currently due)
  A: Manage renewals (1 total)
  O: More options...
  Q: Quit

M: Fuld konfiguration (anbefalet)

Vi anbefaler M (full options) så du har fuld kontrol over alle indstillinger og ikke misser noget. Du vælger manuelt:

  1. Source Hvor domænenavne hentes: IIS (automatisk), manual (du angiver navne), eller CSR (eksisterende nøgle).
  2. Validation HTTP-01 (selfhosting, filesystem, FTP, WebDAV), DNS-01 (23+ DNS-udbydere, acme-dns, script) eller TLS-ALPN-01.
  3. CSR Nøgletype: RSA (standard 3072 bit) eller EC/ECDSA (standard P-384). Kan ændres.
  4. Store Hvor certifikatet gemmes: Windows Certificate Store, IIS Central Certificate Store, PEM-filer, PFX, Azure Key Vault.
  5. Installation Hvad der sker efter: IIS binding-opdatering, script-kørsel, eller begge dele.

N (default settings) er hurtigere, men bruger HTTP-01 og standard-indstillinger. Til servere bag firewall, wildcard-certifikater, eller specielle installationer som Exchange og RDP, brug altid M.

CLI-automatisering (unattended mode)

Til automatisering og CI/CD bruger du CLI-argumenter i stedet for den interaktive menu. Herunder er de mest almindelige scenarier.

IIS site med FairSSL AutoDNS

Wildcard + apex-domæne, valideret via DNS-01 med FairSSL AutoDNS. Ingen DNS API-nøgler nødvendige. --siteid 1 installerer certifikatet på IIS site 1 og binder det automatisk til de hostnavne i sitet der matcher certifikatets navne.

simple-acme.exe ^
  --baseuri https://fairssl.dk/acme/ ^
  --source manual ^
  --host "*.fairssl.dk,fairssl.dk" ^
  --validationmode dns-01 ^
  --validation acme-dns ^
  --csr ec ^
  --store certificatestore ^
  --installation iis ^
  --siteid 1 ^
  --accepttos

DNS-validering med egen DNS-udbyder og ekstra PEM + PFX (pluggable)

Hvis I ikke bruger AutoDNS og i stedet har direkte API-adgang til jeres DNS-udbyder (kræver pluggable-versionen). Dette eksempel validerer via Cloudflare API, gemmer certifikatet i Windows Certificate Store, som PEM-filer og som PFX, og installerer på IIS site 1:

simple-acme.exe ^
  --baseuri https://fairssl.dk/acme/ ^
  --source manual ^
  --host www.fairssl.dk,fairssl.dk ^
  --validationmode dns-01 ^
  --validation cloudflare ^
  --cloudflareapitoken JERES_CF_TOKEN ^
  --csr ec ^
  --store certificatestore,pemfiles,pfxfile ^
  --pemfilespath C:\certs\fairssl.dk ^
  --pfxfilepath C:\certs\fairssl.dk ^
  --pfxpassword KODEORD ^
  --installation iis ^
  --siteid 1 ^
  --accepttos

Lagringsmuligheder (store)

Simple-acme kan gemme certifikater på flere måder. Kombiner dem med komma i --store.

Windows Certificate Store

--store certificatestore

Standard til IIS, Exchange, RDP. Certifikatet installeres i Local Machine store.

PEM-filer (certifikat + nøgle)

--store pemfiles ^
--pemfilespath C:\certs\

Til Nginx, HAProxy, netværksudstyr. Genererer .pem og .key filer.

PFX-fil (PKCS#12)

--store pfxfile ^
--pfxfilepath C:\certs\ ^
--pfxpassword KODEORD

Til import i andre systemer. Password-beskyttet.

Kombiner lagringstyper: --store certificatestore,pemfiles gemmer i Windows Certificate Store og eksporterer PEM-filer samtidig.

Post-fornyelse script

Kør et script efter fornyelse gennemføres med success, f.eks. til at aktivere certifikatet på netværksudstyr eller genstarte en tjeneste:

simple-acme.exe ^
  --baseuri https://fairssl.dk/acme/ ^
  --source manual ^
  --host rdp.fairssl.dk ^
  --validationmode dns-01 ^
  --validation acme-dns ^
  --csr ec ^
  --store pemfiles ^
  --pemfilespath C:\certs\rdp ^
  --installation script ^
  --script "C:\scripts\deploy-cert.ps1" ^
  --scriptparameters "'{CertThumbprint}' '{StoreType}'" ^
  --accepttos

Alle argumenter med ^ er Windows CMD line continuation. I PowerShell bruges backtick ` i stedet. Værdier med specialtegn (wildcards, mellemrum) skal omsluttes af dobbelte anførselstegn.

Valideringsmetoder

HTTP-01

Simple-acme placerer en fil på port 80, som CA'en henter. Standard i N-menuen (selfhosting).

Fordele

  • Simpel opsætning, ingen DNS-adgang nødvendig
  • Virker med alle DNS-udbydere

Begrænsninger

  • Port 80 skal være åben udefra
  • Kan ikke bruges til wildcards
  • Redirects fra HTTP til HTTPS er ikke tilladt under validering
  • Alle SAN-navne skal svare på samme server

DNS-01

Anbefalet

Opretter en TXT-record _acme-challenge.domæne i jeres DNS. Virker bag firewalls og til wildcards.

Fordele

  • Virker bag firewalls, ingen åbne porte nødvendige
  • Understøtter wildcards
  • Server behøver ikke eksponeres mod internet

Krav

  • DNS-udbyderens API, acme-dns, CNAME-delegation eller script
  • Se FairSSL AutoDNS for den nemmeste løsning

TLS-ALPN-01

Præsenterer et selvunderskrevet certifikat på port 443 med ALPN-extension (RFC 8737).

Fordele

  • Behøver ikke port 80
  • Virker når HTTP er deaktiveret

Begrænsninger

  • Kræver at simple-acme midlertidigt binder port 443
  • Kan ikke bruges til wildcards
  • IIS skal stoppes under validering

DNS-plugins (23+ udbydere)

Simple-acme understøtter automatisk DNS-validering med følgende udbydere via pluggable-versionen:

CloudflareAWS Route 53Azure DNSGoogle Cloud DNSDigitalOceanHetznerGoDaddyLinodeTransIPSimply.comDomeneshopDreamHostDNS Made EasyDNSExitNS1LuaDNSAliyunTencent CloudHuaWei CloudInfomaniakWebnames.caacme-dnsRFC 2136 (nsupdate)

FairSSL AutoDNS: Hvis jeres DNS-udbyder ikke er på listen, eller I ikke vil give DNS API-nøgler til serveren, kan I bruge FairSSL AutoDNS. Opret en permanent CNAME-record _dnsauth.jeres-domæne der peger på FairSSLs valideringsservice. Derefter klarer FairSSL DNS-valideringen automatisk, uden nøgler eller scripts.

Nøgletyper og -størrelser

Simple-acme understøtter RSA og ECDSA nøgler. Valget har betydning for handshake-hastighed, båndbredde og fremtidssikkerhed.

Nøgletype CLI-flag Standard Vores anbefaling
RSA --csr rsa 3072 bit (SHA-512) 4096 bit, kun til ældre klienter
ECDSA --csr ec P-384 (secp384r1) P-384 til nye installationer

Vores anbefaling: ECDSA P-384. Stærkere end RSA 3072 med en brøkdel af nøglestørrelsen. Hurtigere handshakes, lavere CPU-forbrug, mindre certifikater. Alle moderne browsere, operativsystemer og servere understøtter ECDSA. P-384 er simple-acmes standard for EC.

Undgå RSA 2048 hvis muligt. ECDSA er hurtigere og mere fremtidssikret. CA/Browser Forum har diskuteret at hæve minimumsgrænsen for RSA, men intet er vedtaget endnu. Hvis du skal bruge RSA, vælg 3072 bit eller højere. Se vores guide til nøgletyper for detaljer.

Simple-acmes standard er P-384 for EC, som vi anbefaler. Hvis I har brug for at ændre nøgletype, kan det gøres via settings.json:

{
  "CSR": {
    "EC": {
      "CurveName": "secp384r1"
    }
  }
}

IIS binding-håndtering

Den letteste tilgang er at bruge --installation iis. Simple-acme finder automatisk de IIS-sites der har hostnavne som matcher certifikatets domænenavne, og opdaterer deres HTTPS-bindings.

Automatisk (anbefalet)

Uden --siteid finder simple-acme selv de sites der passer:

simple-acme.exe --source iis --installation iis

Dette virker ikke på default sites uden hostnavn. Der skal du enten manuelt opdatere binding eller angive --siteid.

Specifikt site

Angiv site-ID for at binde certifikatet til et bestemt IIS-site. ID'et finder du i IIS Manager under Sites-mappen:

simple-acme.exe --source iis --siteid 1 --installation iis

Flere sites (SNI)

IIS 8+ understøtter Server Name Indication (SNI), hvilket tillader flere certifikater på samme IP og port. Simple-acme opretter SNI-bindings automatisk. Angiv flere site-ID'er med komma:

simple-acme.exe --source iis --siteid 1,2,3 --installation iis

Du kan også lave separate fornyelser per site. Hvert certifikat får sin egen .renewal.json fil og fornyes uafhængigt.

IIS Central Certificate Store (CCS)

Til webfarme med flere IIS-servere kan du bruge Central Certificate Store. Certifikater eksporteres som PFX-filer til et delt filshare, og alle IIS-servere henter dem derfra:

simple-acme.exe --source iis --store centralssl ^
  --centralsslstore "\\\\fileserver\\certs" ^
  --installation iis

Task Scheduler og fornyelse

Simple-acme opretter en Windows Task Scheduler-opgave ved første certifikat. Opgaven kører dagligt og fornyer certifikater der nærmer sig udløb.

Vigtigt: Scheduled task og settings.json skal passe sammen. Kørselstidspunkt, tilfældig forsinkelse og stier skal matche begge steder. Hvis I ændrer indstillinger i den ene, skal den anden opdateres tilsvarende. Misforhold mellem de to er en af de hyppigste årsager til at fornyelse fejler stille.

Standardindstillinger

Kørselstidspunkt
09:00 + tilfældig forsinkelse
Tilfældig forsinkelse
op til 4 timer
Maks. køretid
2 timer
Fornyelse ved
55 dage resterende

Med ARI (FairSSL)

Når ARI er aktiveret (automatisk med FairSSL), tjekker simple-acme dagligt hos CA'en for det optimale fornyelsestidspunkt. CA'en kan signalere tidlig fornyelse ved sikkerhedshændelser.

FairSSL overvåger ARI check-ins og kan kontakte jer, hvis en klient holder op med at tjekke ind.

Vi anbefaler at sætte RenewalDays til 365 i settings.json, da ARI bestemmer det korrekte fornyelsestidspunkt. Hvis ARI ikke er tilgængeligt, har simple-acme en indbygget backup på 7 dage før udløb. RenewalDays er kun en fallback.

Kør fornyelse uden for produktionstid. Med 200-dages certifikater (2026) og kommende 100-dages (2027) og 47-dages (2029) levetider bliver fornyelsesfrekvensen højere. Planlæg Task Scheduler til at køre tidligt om morgenen eller sent om aftenen, så eventuelle valideringsfejl kan håndteres inden normal arbejdstid. Juster i settings.json:

"ScheduledTask": {
  "StartBoundary": "05:00:00",
  "RandomDelay": "01:00:00"
}

Kort certifikatlevetid (47 dage fra 2029)

Med 47-dages certifikatlevetid fra marts 2029 skal fornyelse køre hyppigere og pålideligt. Simple-acme med ARI håndterer dette automatisk. CA'en bestemmer det optimale fornyelsestidspunkt, og klienten følger det. Vi anbefaler at teste jeres opsætning grundigt nu, mens certifikater stadig er 200 dage, så I er klar til de kortere levetider.

Post-fornyelse scripts

Simple-acme kan køre scripts efter succesfuld fornyelse. Når certifikatet skal deployes til tjenester uden for IIS: RDP Gateway, Exchange, SQL Server, netværksudstyr eller andre servere.

Scriptet modtager certifikatoplysninger som parametre. De vigtigste variable:

Variabel Beskrivelse
{CertThumbprint}SHA-1 thumbprint af det nye certifikat
{CacheFile}Sti til PFX-filen i cache
{CachePassword}Password til PFX-filen
{CertFriendlyName}Certifikatets friendly name
{StorePath}Sti til PEM/PFX-eksportmappe

Eksempel: RDP Gateway-binding

PowerShell-script der binder det nye certifikat til RD Gateway efter fornyelse:

# deploy-rdgateway.ps1
param(
    [string]$Thumbprint
)
# Bind til RD Gateway
$gwConfig = Get-Item "RDS:\GatewayServer\SSLCertificate"
Set-Item "RDS:\GatewayServer\SSLCertificate\Thumbprint" -Value $Thumbprint
# Genstart RD Gateway-tjenesten
Restart-Service TSGateway -Force
Write-Host "RD Gateway certificate updated: $Thumbprint"

Konfigurer i simple-acme: --installation script --script "C:\\scripts\\deploy-rdgateway.ps1" --scriptparameters "{CertThumbprint}"

Eksempel: SQL Server (private key rettigheder)

SQL Server kræver at sin servicebruger har læseadgang til certifikatets private nøgle. Ved hver fornyelse genereres en ny nøgle, og rettighederne skal sættes igen. Dette script tildeler rettigheder og genstarter SQL:

# deploy-sqlserver.ps1
param(
    [string]$Thumbprint
)
# Find certifikatet i Certificate Store
$cert = Get-ChildItem "Cert:\LocalMachine\My\$Thumbprint"
$keyPath = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$fullPath = "$env:ProgramData\Microsoft\Crypto\RSA\MachineKeys\$keyPath"

# Giv SQL Server-servicekontoen læseadgang til private key
$acl = Get-Acl $fullPath
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "NT Service\MSSQLSERVER", "Read", "Allow"
)
$acl.AddAccessRule($rule)
Set-Acl $fullPath $acl

# Opdater SQL Server til at bruge det nye certifikat
# (kræver SQL Server Configuration Manager eller registry)
Restart-Service MSSQLSERVER -Force
Write-Host "SQL Server certificate updated: $Thumbprint"

Tilpas NT Service\\MSSQLSERVER til jeres SQL Server-servicebruger hvis den kører under en anden konto.

Fejlfinding

HTTP-01 validering fejler

Tjek at port 80 er åben i Windows Firewall og eventuel ekstern firewall. Simple-acme skal kunne binde port 80 (selfhosting) eller skrive til IIS webroot (filesystem). Redirects fra HTTP til HTTPS er ikke tilladt under validering. Tjek IIS URL Rewrite-regler. Hvis serveren er bag en load balancer, overvej DNS-validering i stedet.

DNS-01 validering fejler (timeout)

DNS-propagation kan tage 30-300 sekunder afhængigt af udbyderen. Tjek at TXT-recorden _acme-challenge.jeres-domæne er synlig med nslookup -type=TXT _acme-challenge.jeres-domæne. Hvis du bruger CNAME-delegation (AutoDNS), tjek at CNAME-recorden peger korrekt. Sæt evt. DnsPropagationDelay højere i settings.json.

Certifikatet installeres, men IIS bruger det gamle

Tjek at --installation iis er med i fornyelseskonfigurationen. Åbn .renewal.json filen og verificer at InstallationPluginOptions indeholder IIS-konfigurationen. Alternativt: kør simple-acme.exe --renew --force for at tvinge fornyelse.

Task Scheduler kører, men certifikater fornyes ikke

Tjek logfilerne i simple-acmes logmappe (standard: %ProgramData%\simple-acme\logs). De mest almindelige årsager: kontoen der kører tasken har ikke rettigheder til IIS, DNS API-nøgler er udløbet, eller certifikatet er endnu ikke due for renewal (standard: 55 dage inden udløb). Kør manuelt med --renew --verbose for at se detaljeret output.

CAA-record blokerer udstedelse

Hvis I har CAA DNS-records, skal de tillade den CA, der udsteder certifikatet. FairSSL bruger DigiCert, GlobalSign og Sectigo som CA'er. Brug vores CAA Record Generator til at generere korrekte CAA-records for jeres domæne.

Ofte stillede spørgsmål om simple-acme

Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.

Simple-acme er en fork af win-acme (også kaldet WACS). Projektet skiftede navn og maintainer i 2024. Simple-acme er tværplatform (Windows + Linux), har aktiv udvikling og ARI-understøttelse (RFC 9773). Win-acme eksisterer stadig, men simple-acme modtager opdateringer hurtigere. FairSSL sponserer simple-acme.
Vi anbefaler trimmed-versionen til de fleste. Den er meget mindre og dækker alle opsætninger med FairSSL AutoDNS, da FairSSL håndterer DNS-validering uden plugins. Brug pluggable-versionen hvis I har brug for direkte DNS API-integration med jeres egen DNS-udbyder, PEM/PFX-eksport eller Azure Key Vault.
Ja. Simple-acme understøtter Windows Server 2012 og nyere. Det kræver .NET 8 runtime, som også kører på 2012 R2. Vi anbefaler dog at opgradere til mindst Server 2016, da 2012 R2 har end-of-life support.
ECDSA P-384 er stærkere end RSA 3072 med langt kortere nøgler. Det giver hurtigere TLS-handshakes og lavere båndbreddeforbrug. P-384 er simple-acmes standard for EC-nøgler. RSA 2048 bør undgås. CA/Browser Forum har diskuteret at hæve minimumsgrænsen, men intet er vedtaget endnu. Hvis du har brug for RSA-kompatibilitet (ældre Java-klienter, hardware der ikke understøtter ECDSA), brug RSA 4096.
Simple-acme logger fejlen og forsøger igen ved næste kørsel (dagligt). Hvis du har konfigureret SMTP-notifikationer, sender den en e-mail ved fejl. Med ARI aktiveret kan FairSSL også se at klienten ikke har fornyet som forventet, og vi kan kontakte jer proaktivt.
Ja. Brug --source manual med de relevante hostnavne (mail.example.com, autodiscover.example.com) og --installation iis for IIS-fronten. Exchange bruger IIS internt, så certifikatet bindes via IIS. Du kan også bruge --store pemfiles til at eksportere til andre formater, hvis Exchange kræver det.
Simple-acme opretter som standard scheduled task under den bruger, der kører programmet. Vi anbefaler at køre det som en dedikeret servicekonto med "Log on as a batch job" rettighed, eller som SYSTEM hvis maskinen er domænetilsluttet. Kontoen skal have skriveadgang til simple-acmes konfigurationsmappe og rettigheder til IIS-administration.
Ja. Du kan enten vælge flere sites i den interaktive menu, eller oprette separate fornyelser med --source iis --siteid 1,2,3. Hvert certifikat får sin egen .renewal.json fil og fornyes uafhængigt. SNI (Server Name Indication) i IIS 8+ sikrer, at hvert site får den korrekte binding.
Simple-acme finder automatisk alle de steder hvor certifikatet bruges, og ved fornyelse udskiftes de med det nye certifikat. Sørg for at bindings er korrekte ved første opsætning, derefter klarer simple-acme det automatisk.
Nej. EAB-nøglerne bruges kun ved første forbindelse, hvor der oprettes en konto til ACME-klienten. Derefter bruger simple-acme den oprettede konto automatisk.
Du behøver ikke installere flere ACME-klienter. Én simple-acme installation kan hente og vedligeholde flere certifikater. Brug den interaktive menu til at oprette eller rette i certifikater, eller kør kommandoen til at oprette et nyt certifikat igen. Sørg for at --friendlyname er unik for hvert certifikat.

Kom i gang med SSL-automatisering

Opret en gratis konto og udsted dit første certifikat på under 10 minutter.