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
Meget mindre download. Til FairSSL AutoDNS behøves ingen plugins, da FairSSL håndterer DNS-validering. Dækker de fleste opsætninger.
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 iC:\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.
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.
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
Verificér registrering
Tjek i FairSSL kontrolpanelet at klienten er synlig under jeres ACME-profil. Kontoen er nu knyttet til FairSSL.
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:
- Source Hvor domænenavne hentes: IIS (automatisk), manual (du angiver navne), eller CSR (eksisterende nøgle).
- Validation HTTP-01 (selfhosting, filesystem, FTP, WebDAV), DNS-01 (23+ DNS-udbydere, acme-dns, script) eller TLS-ALPN-01.
- CSR Nøgletype: RSA (standard 3072 bit) eller EC/ECDSA (standard P-384). Kan ændres.
- Store Hvor certifikatet gemmes: Windows Certificate Store, IIS Central Certificate Store, PEM-filer, PFX, Azure Key Vault.
- 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:
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.
Relateret indhold
ACME-klienter
Sammenligning af alle anbefalede ACME-klienter til Windows, Linux og cloud.
FairSSL AutoDNS
Automatisk DNS-validering via permanent CNAME. Ingen DNS API-nøgler nødvendige.
Windows ACME-opsætning
Generel Windows Server ACME-guide for IIS, Exchange, RDP og SQL Server.
SSL-certifikatlevetid
200 dage (2026), 100 dage (2027), 47 dage (2029). Tidslinje og forberedelse.
CAA Record Generator
Generér CAA DNS-records for dit domæne. Kontrollér hvilke CA'er der må udstede certifikater.
Hvad er SSL?
Komplet guide til SSL/TLS: nøgletyper, certifikatkæder, validering og sikkerhed.
Ofte stillede spørgsmål om simple-acme
Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.
--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.--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.--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.