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
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.
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 iC:\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.
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.
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
Kontrollera registreringen
Kontrollera i FairSSL:s kontrollpanel att klienten syns under din ACME-profil. Kontot är nu kopplat till FairSSL.
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:
- Source Varifrån domännamnen hämtas: IIS (automatiskt), manual (du anger namnen) eller CSR (befintlig nyckel).
- Validation HTTP-01 (selfhosting, filesystem, FTP, WebDAV), DNS-01 (23+ DNS-leverantörer, acme-dns, script) eller TLS-ALPN-01.
- CSR Nyckeltyp: RSA (standard 3072 bitar) eller EC/ECDSA (standard P-384). Går att ändra.
- Store Var certifikatet sparas: Windows Certificate Store, IIS Central Certificate Store, PEM-filer, PFX, Azure Key Vault.
- 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:
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.
Relaterat innehåll
ACME-klienter
Jämförelse av alla rekommenderade ACME-klienter för Windows, Linux och molnet.
FairSSL AutoDNS
Automatisk DNS-validering via en permanent CNAME-post. Inga API-nycklar till DNS behövs.
ACME-konfiguration för Windows
Allmän ACME-guide för Windows Server: IIS, Exchange, RDP och SQL Server.
Livslängd för SSL-certifikat
199 dagar (2026), 99 dagar (2027), 47 dagar (2029). Tidslinje och förberedelser.
CAA-generator
Skapa CAA-poster i DNS för din domän och bestäm vilka CA:er som får utfärda certifikat.
Vad är SSL?
Komplett guide till SSL/TLS: nyckeltyper, certifikatkedjor, validering och säkerhet.
Vanliga frågor om simple-acme
Hitta svar på de vanligaste frågorna om SSL-certifikat och FairSSL.
--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.--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.--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.