SSL-certifikat får vara giltiga i högst 199 dagar. Från 15 mars 2027 blir gränsen 99 dagar. Läs mer →

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

Simple-acme är en utbredd ACME-klient för Windows Server och en direkt ersättare för win-acme, byggd av samma utvecklare. Den kan användas överallt där win-acme används. Guiden går igenom 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 förvirra när du söker information:

  • 2017-2023 win-acme (WACS) av Wouter Tinus. Endast Windows, .NET Framework.
  • 2024-nu simple-acme, en fork med ny underhållare. Plattformsoberoende (.NET 8), stöd för ARI, utvecklas aktivt.

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

Nedladdning och krav

Trimmed (rekommenderad) Rekommenderad

Betydligt mindre att ladda ner. Med FairSSL AutoDNS behövs inga plugins, eftersom FairSSL sköter DNS-valideringen. Räcker för de flesta installationer.

Pluggable

Alla plugins ingår: DNS-validering med egna API-nycklar till DNS-leverantören, PEM/PFX-export, Azure Key Vault. Välj den här om du behöver integrera direkt med DNS-leverantörens API eller behöver särskilda exportformat.

  • OS: Windows Server 2012+ (x64). Linux finns som beta.
  • Runtime: .NET 8 (ingår i nedladdningen).
  • Aktuell version: v2.3.5
  • Licens: Apache 2.0 (öppen källkod).
  • Installation: Packa upp i C:\Simple-Acme. Inget installationsprogram, du kopierar bara mappen. Skript finns i C:\Simple-Acme\Scripts.

Konfiguration med FairSSL:s ACME-server

Innan du startar simple-acme behöver du skapa EAB-uppgifter i FairSSL:s kontrollpanel. EAB (External Account Binding) kopplar ACME-certifikaten till ditt FairSSL-konto, så att alla certifikat, klienter och förnyelser syns och övervakas.

1

Skapa EAB-nycklar i FairSSL

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

2

Registrera kontot 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

Kontrollera registreringen

Kontrollera i FairSSL:s kontrollpanel att klienten syns under din ACME-profil. Kontot är nu kopplat till FairSSL.

Server-URL: FairSSL:s ACME-server har adressen 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 styr alla inställningar själv och inte missar något. Du väljer själv:

  1. Source Varifrån domännamnen hämtas: IIS (automatiskt), manual (du anger namnen) 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 bitar) eller EC/ECDSA (standard P-384). Går att ändra.
  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åt: IIS-bindningarna uppdateras, ett skript körs, eller båda delarna.

N (default settings) går snabbare, men använder HTTP-01 och standardinställningar. Använd alltid M för servrar bakom brandvägg, för wildcardcertifikat och för specialfall som Exchange och RDP.

CLI-automatisering (obevakat läge)

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

IIS-webbplats med FairSSL AutoDNS

Wildcard + huvuddomän, validerat via DNS-01 med FairSSL AutoDNS. Inga API-nycklar till DNS behövs. --siteid 1 installerar certifikatet på IIS-webbplats 1 och binder det automatiskt till de värdnamn på webbplatsen 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 du inte använder AutoDNS och i stället har direkt API-åtkomst till din DNS-leverantör (kräver pluggable-versionen). Exemplet validerar via Cloudflares API, sparar certifikatet i Windows Certificate Store, som PEM-filer och som PFX, och installerar det på IIS-webbplats 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 och RDP. Certifikatet installeras i datorns certifikatlager (Local Machine).

PEM-filer (certifikat + nyckel)

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

För Nginx, HAProxy och nätverksutrustning. Skapar .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.

Skript efter förnyelse

Kör ett skript när förnyelsen är klar, till exempel 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

Tecknet ^ i slutet av raderna betyder radfortsättning i Windows CMD. I PowerShell används backtick ` i stället. Värden med specialtecken (wildcard, mellanslag) ska omges av dubbla citattecken.

Valideringsmetoder

HTTP-01

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

Fördelar

  • Enkel att sätta upp, ingen DNS-åtkomst behövs
  • Fungerar med alla DNS-leverantörer

Begränsningar

  • Port 80 måste vara öppen utifrån
  • Kan inte användas för wildcardcertifikat
  • Omdirigeringar från HTTP till HTTPS är inte tillåtna under valideringen
  • Alla namn i SAN måste svara på samma server

DNS-01

Rekommenderad

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

Fördelar

  • Fungerar bakom brandväggar, inga öppna portar behövs
  • Stöder wildcardcertifikat
  • Servern behöver inte vara nåbar från internet

Krav

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

TLS-ALPN-01

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

Fördelar

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

Begränsningar

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

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 din DNS-leverantör inte finns i listan, eller om du inte vill lägga API-nycklar till DNS på servern, kan du använda FairSSL AutoDNS. Skapa en permanent CNAME-post _dnsauth.ert-doman som pekar på FairSSL:s valideringstjänst. Sedan sköter FairSSL DNS-valideringen automatiskt, utan nycklar eller skript.

Nyckeltyper och nyckellängder

Simple-acme stöder RSA- och ECDSA-nycklar. Valet påverkar hur snabb handskakningen är, hur mycket data som skickas och hur framtidssäker nyckeln är.

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

Vår rekommendation: ECDSA P-384. Säkrare än RSA 3072 med en bråkdel av nyckellängden. Snabbare handskakning, lägre CPU-belastning och mindre certifikat. Alla moderna webbläsare, operativsystem och servrar stöder ECDSA. P-384 är standard för EC i simple-acme.

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äljer du 3072 bitar eller mer. Läs mer i vår guide till nyckeltyper.

Simple-acme använder P-384 som standard för EC, vilket är det vi rekommenderar. Om du behöver ändra nyckeltyp gör du det i settings.json:

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

Hantera IIS-bindningar

Det enklaste är att använda --installation iis. Simple-acme hittar automatiskt de IIS-webbplatser vars värdnamn matchar certifikatets domännamn och uppdaterar deras HTTPS-bindningar.

Automatiskt (rekommenderas)

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

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

Det fungerar inte för standardwebbplatser utan värdnamn. Där måste du antingen uppdatera bindningen manuellt eller ange --siteid.

En specifik webbplats

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

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

Flera webbplatser (SNI)

IIS 8+ stöder Server Name Indication (SNI), som gör det möjligt att ha flera certifikat på samma IP-adress och port. Simple-acme skapar SNI-bindningar automatiskt. Ange flera webbplats-ID:n separerade med komma:

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

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

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 schemalagd aktivitet i Windows Task Scheduler när det första certifikatet skapas. Aktiviteten körs dagligen och förnyar certifikat som snart löper ut.

Viktigt: Den schemalagda aktiviteten och settings.json måste stämma överens. Starttid, slumpmässig fördröjning och sökvägar måste vara desamma på båda ställena. Ändrar du en inställning på det ena stället måste du uppdatera det andra. Skillnader mellan de två är en av de vanligaste orsakerna till att förnyelsen misslyckas utan att någon märker det.

Standardinställningar

Starttid
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 (vilket sker automatiskt med FairSSL) frågar simple-acme varje dag CA:n när certifikatet bör förnyas. CA:n kan begära tidigare förnyelse vid säkerhetsincidenter.

FairSSL övervakar klienternas ARI-anrop och kan kontakta dig om en klient slutar höra av sig.

Vi rekommenderar att du sätter RenewalDays till 365 i settings.json, eftersom ARI avgör när certifikatet ska förnyas. Om ARI inte är tillgängligt har simple-acme en inbyggd reserv som förnyar 7 dagar före utgång. RenewalDays fungerar bara som fallback.

Kör förnyelsen utanför arbetstid. Med en livstid på 199 dagar sedan 15 mars 2026, 99 dagar från 15 mars 2027 och 47 dagar från 15 mars 2029 förnyas certifikaten allt oftare. Schemalägg aktiviteten tidigt på morgonen eller sent på kvällen, så att eventuella valideringsfel hinner åtgärdas före arbetsdagens början. Justera i settings.json:

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

Kort livslängd för certifikat (47 dagar från 2029)

Med en livslängd på 47 dagar från 15 mars 2029 måste förnyelsen köras oftare och fungera varje gång. Simple-acme med ARI sköter det automatiskt: CA:n bestämmer när certifikatet ska förnyas, och klienten följer det. Testa din konfiguration noggrant nu, medan certifikaten fortfarande gäller i 199 dagar, så att du är redo för de kortare livstiderna.

Skript efter förnyelse

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

Skriptet tar emot certifikatinformationen som parametrar. De viktigaste variablerna:

Variabel Beskrivning
{CertThumbprint}SHA-1-tumavtryck för det nya certifikatet
{CacheFile}Sökväg till PFX-filen i cachen
{CachePassword}Lösenord till PFX-filen
{CertFriendlyName}Certifikatets visningsnamn (friendly name)
{StorePath}Sökväg till exportmappen för PEM/PFX

Exempel: bindning till RD Gateway

PowerShell-skript som binder det nya certifikatet till RD Gateway efter förnyelsen:

# 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 (behörighet till den privata nyckeln)

SQL Server kräver att tjänstekontot har läsbehörighet till certifikatets privata nyckel. Vid varje förnyelse skapas en ny nyckel, och behörigheten måste sättas på nytt. Skriptet nedan ger behörigheten och startar om SQL Server:

# 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änstekontot läsbehörighet till den privata nyckeln
$acl = Get-Acl $fullPath
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "NT Service\MSSQLSERVER", "Read", "Allow"
)
$acl.AddAccessRule($rule)
Set-Acl $fullPath $acl

# Ställ in SQL Server på det nya certifikatet
# (kräver SQL Server Configuration Manager eller registret)
Restart-Service MSSQLSERVER -Force
Write-Host "SQL Server certificate updated: $Thumbprint"

Byt NT Service\\MSSQLSERVER mot ditt SQL Server-tjänstekonto om tjänsten körs under ett annat konto.

Felsökning

HTTP-01-validering misslyckas

Kontrollera att port 80 är öppen i Windows-brandväggen och i eventuell extern brandvägg. Simple-acme måste kunna lyssna på port 80 (selfhosting) eller skriva till IIS webbrot (filesystem). Omdirigeringar från HTTP till HTTPS är inte tillåtna under valideringen. Kontrollera reglerna i IIS URL Rewrite. Står servern bakom en lastbalanserare är DNS-validering ett bättre val.

DNS-01-validering misslyckas (timeout)

Det kan ta 30-300 sekunder innan DNS-ändringen har spridit sig, beroende på leverantör. Kontrollera att TXT-posten _acme-challenge.ert-doman syns med nslookup -type=TXT _acme-challenge.ert-doman. Om du använder CNAME-vidarebefordran (AutoDNS), kontrollera att CNAME-posten pekar rätt. Höj vid behov 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 kontrollera att InstallationPluginOptions innehåller IIS-konfigurationen. Du kan också köra simple-acme.exe --renew --force för att tvinga fram en förnyelse.

Aktiviteten körs, men certifikaten förnyas inte

Kontrollera loggfilerna i simple-acmes loggmapp (standard: %ProgramData%\simple-acme\logs). De vanligaste orsakerna är att kontot som kör aktiviteten saknar behörighet till IIS, att API-nycklarna till DNS har löpt ut eller att certifikatet ännu inte har nått förnyelsedatumet (standard: 55 dagar före utgång). Kör manuellt med --renew --verbose för att se detaljerade utskrifter.

CAA-post blockerar utfärdande

Om du har CAA-poster i DNS måste de tillåta den CA som utfärdar certifikatet. Certifikat via FairSSL:s ACME-server utfärdas av DigiCert och GlobalSign. Vi säljer även Sectigo, men de certifikaten kan ännu inte utfärdas via vår ACME-server. Använd vår CAA-generator för att skapa korrekta CAA-poster för din 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), utvecklas aktivt och stöder ARI (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 betydligt mindre och räcker för alla konfigurationer med FairSSL AutoDNS, eftersom FairSSL sköter DNS-valideringen utan plugins. Använd pluggable-versionen om du behöver integrera direkt med din DNS-leverantörs API, PEM/PFX-export eller Azure Key Vault.
Ja. Simple-acme stöder Windows Server 2012 och nyare. Programmet kräver .NET 8 Runtime, som även fungerar på 2012 R2. Vi rekommenderar ändå att du uppgraderar till minst Server 2016, eftersom supporten för 2012 R2 har upphört.
ECDSA P-384 är säkrare än RSA 3072 med betydligt kortare nycklar. Det ger snabbare TLS-handskakning och mindre datatrafik. P-384 är standard för EC-nycklar i simple-acme. Undvik RSA 2048. CA/Browser Forum har diskuterat att höja minimigränsen, men inget har beslutats ännu. Om du behöver RSA av kompatibilitetsskäl (äldre Java-klienter, hårdvara som inte stöder ECDSA) använder du RSA 4096.
Simple-acme loggar felet och försöker igen vid nästa körning (dagligen). Om du har konfigurerat e-postaviseringar via SMTP skickar programmet ett mejl när något går fel. Med ARI aktiverat ser FairSSL också att klienten inte har förnyat som väntat, och vi kan kontakta dig på eget initiativ.
Ja. Använd --source manual med de aktuella värdnamnen (mail.example.com, autodiscover.example.com) och --installation iis för Exchange-tjänsterna i IIS. 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 schemalagd aktivitet som körs som den användare som startade programmet. Vi rekommenderar att den körs som ett dedikerat tjänstekonto med behörigheten "Log on as a batch job", eller som SYSTEM om maskinen är domänansluten. Kontot måste ha skrivbehörighet till simple-acmes konfigurationsmapp och behörighet att administrera IIS.
Ja. Du kan antingen välja flera webbplatser 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 för sig. Med SNI (Server Name Indication) i IIS 8+ får varje webbplats rätt bindning.
Simple-acme hittar automatiskt alla ställen där certifikatet används och byter till det nya certifikatet vid förnyelse. Se till att bindningarna är korrekta när du konfigurerar första gången, så sköter simple-acme resten.
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 installation av simple-acme kan hämta och förnya flera certifikat. Använd den interaktiva menyn för att skapa eller redigera certifikat, eller kör kommandot för att skapa certifikat en gång per certifikat. Se till att --friendlyname är unikt för varje certifikat.

Kom igång med SSL-automatisering

Skapa ett gratis konto och beställ ditt första certifikat. Ett DV-certifikat utfärdas på under 2 minuter.