SSL-certifikatens maximala livslängd reduceras till 200 dagar från mars 2026. Läs mer →

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

Simple-acme är den mest använda ACME-klienten för Windows Server och en drop-in replacement för win-acme, byggd av samma utvecklare. Den kan användas överallt där win-acme används idag. Den här guiden täcker allt från installation till produktion med FairSSL som ACME-server.

FairSSL är sponsor av simple-acme-projektet.

Namnhistorik

Projektet har bytt namn flera gånger, vilket kan skapa förvirring vid sökning:

  • 2017-2023 win-acme (WACS) av Wouter Tinus. Enbart Windows, .NET Framework.
  • 2024-nu simple-acme, fork med ny underhållare. Plattformsoberoende (.NET 8), ARI-stöd, aktiv utveckling.

Domänen win-acme.com finns fortfarande, men vi rekommenderar simple-acme.com som källa.

Nedladdning och krav

Trimmed (rekommenderad) Rekommenderad

Mycket mindre nedladdning. Med FairSSL AutoDNS behövs inga plugins, eftersom FairSSL hanterar DNS-validering. Täcker de flesta uppsättningar.

Pluggable

Alla plugins inkluderade: DNS-validering via egna DNS API-nycklar, PEM/PFX-export, Azure Key Vault. Använd denna om ni behöver direkt DNS API-integration eller speciella exportformat.

  • OS: Windows Server 2012+ (x64). Linux beta tillgänglig.
  • Runtime: .NET 8 (medföljande i nedladdningen).
  • Aktuell version: v2.3.5
  • Licens: Apache 2.0 (open source).
  • Installation: Packa upp till C:\Simple-Acme. Ingen installer, bara kopiera mappen. Scripts finns i C:\Simple-Acme\Scripts.

Konfiguration med FairSSL ACME-server

Innan du startar simple-acme behöver du skapa EAB-uppgifter i FairSSL kontrollpanelen. EAB (External Account Binding) kopplar ACME-certifikat till ert FairSSL-konto, så alla certifikat, klienter och förnyelser är synliga och övervakade.

1

Skapa EAB-nycklar i FairSSL

Logga in på kontrollpanelen, gå till ACME och klicka Anslut ACME-klient. Du får ett Key ID och en HMAC Key.

2

Registrera konto med EAB

Kör simple-acme med FairSSL som server och EAB-nycklarna från steg 1:

simple-acme.exe --register ^
  --baseuri https://fairssl.dk/acme/ ^
  --eab-key-identifier ERT_KEY_ID ^
  --eab-key ER_HMAC_KEY ^
  --eab-algorithm HS256 ^
  --emailaddress er@email.se ^
  --accepttos
3

Verifiera registrering

Kontrollera i FairSSL kontrollpanelen att klienten syns under er ACME-profil. Kontot är nu kopplat till FairSSL.

Server-URL: FairSSLs ACME-server-URL är https://fairssl.dk/acme/. Den följer RFC 8555 och stöder ARI (RFC 9773).

Interaktiv meny: ditt första certifikat

Starta simple-acme.exe utan argument för att öppna den interaktiva menyn. Vid första körningen väljer du ACME-server och registrerar ditt 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: Full konfiguration (rekommenderad)

Vi rekommenderar M (full options) så att du har full kontroll över alla inställningar och inte missar något. Du väljer manuellt:

  1. Source Var domännamn hämtas: IIS (automatiskt), manual (du anger namn), eller CSR (befintlig nyckel).
  2. Validation HTTP-01 (selfhosting, filesystem, FTP, WebDAV), DNS-01 (23+ DNS-leverantörer, acme-dns, script) eller TLS-ALPN-01.
  3. CSR Nyckeltyp: RSA (standard 3072 bit) eller EC/ECDSA (standard P-384). Kan ändras.
  4. Store Var certifikatet sparas: Windows Certificate Store, IIS Central Certificate Store, PEM-filer, PFX, Azure Key Vault.
  5. Installation Vad som händer efter: IIS binding-uppdatering, scriptkörning, eller båda.

N (default settings) är snabbare, men använder HTTP-01 och standardinställningar. För servrar bakom brandvägg, wildcard-certifikat, eller speciella installationer som Exchange och RDP, använd alltid M.

CLI-automatisering (unattended mode)

För automatisering och CI/CD använder du CLI-argument istället för den interaktiva menyn. Nedan finns de vanligaste scenarierna.

IIS-site med FairSSL AutoDNS

Wildcard + apex-domän, validerat via DNS-01 med FairSSL AutoDNS. Inga DNS API-nycklar nödvändiga. --siteid 1 installerar certifikatet på IIS site 1 och binder det automatiskt till de värdnamn i siten som matchar certifikatets namn.

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

DNS-validering med egen DNS-leverantör och extra PEM + PFX (pluggable)

Om ni inte använder AutoDNS och istället har direkt API-åtkomst till er DNS-leverantör (kräver pluggable-versionen). Detta exempel validerar via Cloudflare API, sparar certifikatet i Windows Certificate Store, som PEM-filer och som PFX, och installerar på IIS site 1:

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

Lagringsalternativ (store)

Simple-acme kan spara certifikat på flera sätt. Kombinera dem med komma i --store.

Windows Certificate Store

--store certificatestore

Standard för IIS, Exchange, RDP. Certifikatet installeras i Local Machine store.

PEM-filer (certifikat + nyckel)

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

För Nginx, HAProxy, nätverksutrustning. Genererar .pem- och .key-filer.

PFX-fil (PKCS#12)

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

För import i andra system. Lösenordsskyddad.

Kombinera lagringstyper: --store certificatestore,pemfiles sparar i Windows Certificate Store och exporterar PEM-filer samtidigt.

Post-förnyelse-script

Kör ett script efter att förnyelsen har genomförts, t.ex. för att aktivera certifikatet på nätverksutrustning eller starta om en tjänst:

simple-acme.exe ^
  --baseuri https://fairssl.dk/acme/ ^
  --source manual ^
  --host rdp.ditt-doman.se ^
  --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

Alla argument med ^ är Windows CMD line continuation. I PowerShell används backtick ` istället. Värden med specialtecken (wildcards, mellanslag) ska omslutas av dubbla citattecken.

Valideringsmetoder

HTTP-01

Simple-acme placerar en fil på port 80, som CA:n hämtar. Standard i N-menyn (selfhosting).

Fördelar

  • Enkel uppsättning, ingen DNS-åtkomst nödvändig
  • Fungerar med alla DNS-leverantörer

Begränsningar

  • Port 80 måste vara öppen utifrån
  • Kan inte användas för wildcards
  • Redirects från HTTP till HTTPS är inte tillåtna under validering
  • Alla SAN-namn måste svara på samma server

DNS-01

Rekommenderad

Skapar en TXT-post _acme-challenge.domän i er DNS. Fungerar bakom brandväggar och för wildcards.

Fördelar

  • Fungerar bakom brandväggar, inga öppna portar nödvändiga
  • Stöder wildcards
  • Servern behöver inte exponeras mot internet

Krav

  • DNS-leverantörens API, acme-dns, CNAME-delegering eller script
  • Se FairSSL AutoDNS för den enklaste lösningen

TLS-ALPN-01

Presenterar ett självsignerat certifikat på port 443 med ALPN-extension (RFC 8737).

Fördelar

  • Behöver inte port 80
  • Fungerar när HTTP är avaktiverat

Begränsningar

  • Kräver att simple-acme tillfälligt binder port 443
  • Kan inte användas för wildcards
  • IIS måste stoppas under validering

DNS-plugins (23+ leverantörer)

Simple-acme stöder automatisk DNS-validering med följande leverantörer via pluggable-versionen:

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

FairSSL AutoDNS: Om er DNS-leverantör inte finns på listan, eller om ni inte vill ge DNS API-nycklar till servern, kan ni använda FairSSL AutoDNS. Skapa en permanent CNAME-post _dnsauth.ert-doman som pekar på FairSSLs valideringstjänst. Därefter sköter FairSSL DNS-valideringen automatiskt, utan nycklar eller scripts.

Nyckeltyper och storlekar

Simple-acme stöder RSA och ECDSA-nycklar. Valet påverkar handshake-hastighet, bandbredd och framtidssäkerhet.

Nyckeltyp CLI-flagga Standard Vår rekommendation
RSA --csr rsa 3072 bit (SHA-512) 4096 bit, enbart för äldre klienter
ECDSA --csr ec P-384 (secp384r1) P-384 för nya installationer

Vår rekommendation: ECDSA P-384. Starkare än RSA 3072 med en bråkdel av nyckelstorleken. Snabbare handshakes, lägre CPU-belastning, mindre certifikat. Alla moderna webbläsare, operativsystem och servrar stöder ECDSA. P-384 är simple-acmes standard för EC.

Undvik RSA 2048 om möjligt. ECDSA är snabbare och mer framtidssäkert. CA/Browser Forum har diskuterat att höja minimigränsen för RSA, men inget har beslutats ännu. Om du måste använda RSA, välj 3072 bit eller högre. Se vår guide till nyckeltyper för detaljer.

Simple-acmes standard är P-384 för EC, som vi rekommenderar. Om ni behöver ändra nyckeltyp kan det göras via settings.json:

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

IIS binding-hantering

Det enklaste tillvägagångssättet är att använda --installation iis. Simple-acme hittar automatiskt de IIS-sites som har värdnamn som matchar certifikatets domännamn, och uppdaterar deras HTTPS-bindings.

Automatiskt (rekommenderad)

Utan --siteid hittar simple-acme själv de sites som passar:

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

Detta fungerar inte på default sites utan värdnamn. Där måste du antingen manuellt uppdatera binding eller ange --siteid.

Specifik site

Ange site-ID för att binda certifikatet till en specifik IIS-site. ID:t hittar du i IIS Manager under Sites-mappen:

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

Flera sites (SNI)

IIS 8+ stöder Server Name Indication (SNI), som tillåter flera certifikat på samma IP och port. Simple-acme skapar SNI-bindings automatiskt. Ange flera site-ID:n med komma:

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

Du kan också skapa separata förnyelser per site. Varje certifikat får sin egen .renewal.json-fil och förnyas oberoende.

IIS Central Certificate Store (CCS)

För webbfarmar med flera IIS-servrar kan du använda Central Certificate Store. Certifikat exporteras som PFX-filer till en delad filresurs, och alla IIS-servrar hämtar dem därifrån:

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

Task Scheduler och förnyelse

Simple-acme skapar en Windows Task Scheduler-uppgift vid första certifikatet. Uppgiften körs dagligen och förnyar certifikat som närmar sig utgång.

Viktigt: Scheduled task och settings.json måste stämma överens. Körningstidpunkt, slumpmässig fördröjning och sökvägar måste matcha på båda ställena. Om ni ändrar inställningar på det ena stället måste det andra uppdateras. Avvikelser mellan de två är en av de vanligaste orsakerna till att förnyelse misslyckas i tysthet.

Standardinställningar

Körningstidpunkt
09:00 + slumpmässig fördröjning
Slumpmässig fördröjning
upp till 4 timmar
Max körtid
2 timmar
Förnyelse vid
55 dagar kvar

Med ARI (FairSSL)

När ARI är aktiverat (automatiskt med FairSSL) kontrollerar simple-acme dagligen hos CA:n efter det optimala förnyelsetillfället. CA:n kan signalera tidig förnyelse vid säkerhetshändelser.

FairSSL övervakar ARI check-ins och kan kontakta er om en klient slutar checka in.

Vi rekommenderar att sätta RenewalDays till 365 i settings.json, eftersom ARI bestämmer rätt förnyelsetidpunkt. Om ARI inte är tillgängligt har simple-acme en inbyggd backup på 7 dagar före utgång. RenewalDays är bara en fallback.

Kör förnyelse utanför produktionstid. Med 200-dagars certifikat (2026) och kommande 100-dagars (2027) och 47-dagars (2029) livslängder blir förnyelsefrekvensen högre. Planera Task Scheduler att köra tidigt på morgonen eller sent på kvällen, så att eventuella valideringsfel kan hanteras innan normal arbetstid. Justera i settings.json:

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

Kort certifikatlivslängd (47 dagar från 2029)

Med 47-dagars certifikatlivslängd från mars 2029 måste förnyelse köras oftare och pålitligt. Simple-acme med ARI hanterar detta automatiskt. CA:n bestämmer det optimala förnyelsetillfället, och klienten följer det. Vi rekommenderar att testa er uppsättning noggrant nu, medan certifikat fortfarande har 200 dagars livslängd, så att ni är redo för de kortare livslängderna.

Post-förnyelse-scripts

Simple-acme kan köra scripts efter en lyckad förnyelse. Använd detta när certifikatet ska distribueras till tjänster utanför IIS: RDP Gateway, Exchange, SQL Server, nätverksutrustning eller andra servrar.

Scriptet tar emot certifikatinformation som parametrar. De viktigaste variablerna:

Variabel Beskrivning
{CertThumbprint}SHA-1 thumbprint för det nya certifikatet
{CacheFile}Sökväg till PFX-filen i cache
{CachePassword}Lösenord till PFX-filen
{CertFriendlyName}Certifikatets friendly name
{StorePath}Sökväg till PEM/PFX-exportmapp

Exempel: RDP Gateway-binding

PowerShell-script som binder det nya certifikatet till RD Gateway efter förnyelse:

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

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

Exempel: SQL Server (rättigheter till privat nyckel)

SQL Server kräver att dess tjänstanvändare har läsåtkomst till certifikatets privata nyckel. Vid varje förnyelse genereras en ny nyckel, och rättigheterna måste sättas igen. Detta script tilldelar rättigheter och startar om SQL:

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

# Ge SQL Server-tjänstkontot läsåtkomst till privat nyckel
$acl = Get-Acl $fullPath
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "NT Service\MSSQLSERVER", "Read", "Allow"
)
$acl.AddAccessRule($rule)
Set-Acl $fullPath $acl

# Uppdatera SQL Server att använda det nya certifikatet
# (kräver SQL Server Configuration Manager eller registret)
Restart-Service MSSQLSERVER -Force
Write-Host "SQL Server certificate updated: $Thumbprint"

Anpassa NT Service\\MSSQLSERVER till er SQL Server-tjänstanvändare om den körs under ett annat konto.

Felsökning

HTTP-01-validering misslyckas

Kontrollera att port 80 är öppen i Windows Firewall och eventuell extern brandvägg. Simple-acme måste kunna binda port 80 (selfhosting) eller skriva till IIS webroot (filesystem). Redirects från HTTP till HTTPS är inte tillåtna under validering. Kontrollera IIS URL Rewrite-regler. Om servern är bakom en load balancer, överväg DNS-validering istället.

DNS-01-validering misslyckas (timeout)

DNS-propagation kan ta 30-300 sekunder beroende på leverantör. Kontrollera att TXT-posten _acme-challenge.ert-doman är synlig med nslookup -type=TXT _acme-challenge.ert-doman. Om du använder CNAME-delegering (AutoDNS), kontrollera att CNAME-posten pekar korrekt. Höj eventuellt DnsPropagationDelay i settings.json.

Certifikatet installeras, men IIS använder det gamla

Kontrollera att --installation iis finns med i förnyelsekonfigurationen. Öppna .renewal.json-filen och verifiera att InstallationPluginOptions innehåller IIS-konfigurationen. Alternativt: kör simple-acme.exe --renew --force för att tvinga förnyelse.

Task Scheduler körs, men certifikat förnyas inte

Kontrollera loggfilerna i simple-acmes loggmapp (standard: %ProgramData%\simple-acme\logs). De vanligaste orsakerna: kontot som kör uppgiften har inte rättigheter till IIS, DNS API-nycklar har löpt ut, eller certifikatet har inte nått förnyelsedatumet (standard: 55 dagar innan utgång). Kör manuellt med --renew --verbose för att se detaljerad utdata.

CAA-post blockerar utfärdande

Om ni har CAA DNS-poster måste de tillåta den CA som utfärdar certifikatet. FairSSL använder DigiCert, GlobalSign och Sectigo som CA:er. Använd vår CAA Record Generator för att generera korrekta CAA-poster för ert domän.

Vanliga frågor om simple-acme

Hitta svar på de vanligaste frågorna om SSL-certifikat och FairSSL.

Simple-acme är en fork av win-acme (även kallat WACS). Projektet bytte namn och underhållare 2024. Simple-acme är plattformsoberoende (Windows + Linux), har aktiv utveckling och ARI-stöd (RFC 9773). Win-acme finns fortfarande, men simple-acme får uppdateringar snabbare. FairSSL sponsrar simple-acme.
Vi rekommenderar trimmed-versionen för de flesta. Den är mycket mindre och täcker alla uppsättningar med FairSSL AutoDNS, eftersom FairSSL hanterar DNS-validering utan plugins. Använd pluggable-versionen om ni behöver direkt DNS API-integration med er egen DNS-leverantör, PEM/PFX-export eller Azure Key Vault.
Ja. Simple-acme stöder Windows Server 2012 och nyare. Det kräver .NET 8 runtime, som även körs på 2012 R2. Vi rekommenderar dock att uppgradera till minst Server 2016, eftersom 2012 R2 har end-of-life support.
ECDSA P-384 är starkare än RSA 3072 med betydligt kortare nycklar. Det ger snabbare TLS-handshakes och lägre bandbreddsanvändning. P-384 är simple-acmes standard för EC-nycklar. RSA 2048 bör undvikas. CA/Browser Forum har diskuterat att höja minimigränsen, men inget har beslutats ännu. Om du behöver RSA-kompatibilitet (äldre Java-klienter, hårdvara som inte stöder ECDSA), använd RSA 4096.
Simple-acme loggar felet och försöker igen vid nästa körning (dagligen). Om du har konfigurerat SMTP-notifieringar skickar den ett e-postmeddelande vid fel. Med ARI aktiverat kan FairSSL också se att klienten inte har förnyat som förväntat, och vi kan kontakta er proaktivt.
Ja. Använd --source manual med de relevanta värdnamnen (mail.example.com, autodiscover.example.com) och --installation iis för IIS-fronten. Exchange använder IIS internt, så certifikatet binds via IIS. Du kan även använda --store pemfiles för att exportera till andra format om Exchange kräver det.
Simple-acme skapar som standard en scheduled task under den användare som kör programmet. Vi rekommenderar att köra det som ett dedikerat tjänstekonto med "Log on as a batch job"-rättighet, eller som SYSTEM om maskinen är domänansluten. Kontot måste ha skrivåtkomst till simple-acmes konfigurationsmapp och rättigheter för IIS-administration.
Ja. Du kan antingen välja flera sites i den interaktiva menyn, eller skapa separata förnyelser med --source iis --siteid 1,2,3. Varje certifikat får sin egen .renewal.json-fil och förnyas oberoende. SNI (Server Name Indication) i IIS 8+ säkerställer att varje site får rätt binding.
Simple-acme hittar automatiskt alla platser där certifikatet används, och vid förnyelse byts de ut mot det nya certifikatet. Se till att bindings är korrekta vid första uppsättningen, sedan sköter simple-acme det automatiskt.
Nej. EAB-nycklarna används bara vid första anslutningen, när ett konto skapas för ACME-klienten. Därefter använder simple-acme det skapade kontot automatiskt.
Du behöver inte installera flera ACME-klienter. En simple-acme-installation kan hämta och underhålla flera certifikat. Använd den interaktiva menyn för att skapa eller redigera certifikat, eller kör kommandot för att skapa ett nytt certifikat igen. Se till att --friendlyname är unikt för varje certifikat.

Kom igång med SSL-automatisering

Skapa ett gratis konto och utfärda ditt första certifikat på under 10 minuter.