Generate keys
RSA 2048/3072/4096, ECDSA P-256/P-384/P-521, Ed25519. Optional AES-256 passphrase. PKCS#8 PEM by default. Crypto runs in-process.
Generate keys + CSRs locally. Convert between every common cert format (PEM, DER, PKCS#7, PFX/PKCS#12). Inspect any cert / CSR / key file. Talk to your Microsoft Issuing CAs across multiple domains — even when they sit under one offline root. Built because certsrv in a modern browser stopped working, and openssl alone doesn't know how to talk to AD CS.
No more openssl one-liners + IIS GUI + multiple template-page round-trips. CertGuard handles the whole CSR-to-PFX lifecycle and talks AD CS HTTP natively.
RSA 2048/3072/4096, ECDSA P-256/P-384/P-521, Ed25519. Optional AES-256 passphrase. PKCS#8 PEM by default. Crypto runs in-process.
Full Subject DN, SAN list (DNS / IP / email / URI / UPN), EKU checklist, AD CS template hint embedded as the Microsoft template-name extension. SHA-256/384/512 signatures.
Auto-detect PEM / DER / PKCS#7 / PFX/PKCS#12 input. Output to any of the same. Attach or strip keys. Bundle chain certs. Set new PFX passphrases.
Drop in a cert / CSR / chain / key. Get subject, issuer, validity, SANs, EKUs, key usage, CA flag, fingerprints, days-to-expire — without typing a single openssl x509 command.
Configure each issuing CA you care about. Per-CA: hostname, domain, auth type (NTLM / Kerberos / Basic), default template. Topology-aware — knows offline-root vs issuing.
POST CSR + template to https://<ica>/certsrv/certfnsh.asp with NTLM auth, poll certnew.cer, handle pending-approval state. Auto-chain into PFX.
Private keys are generated and shown once. They aren't logged, persisted server-side, or transmitted anywhere. Bring an existing key file or generate one in-flight — your choice.
Single binary. Double-click → real window via Edge WebView2 / WKWebView / WebKitGtk. No Python runtime. No browser tab. CLI still available for scripted use.
Built alongside NetGuard Audit — same brand, same install pattern, separate trust model. Run both at once on different ports. Single suite, focused tools.
No MSI. No service. No registry edits. No admin rights. No patches. The binary's SHA-256 is your entire Software Approval Baseline artifact — drop it on disk, run, done. When the new version ships, swap the .exe.
Edge and Chrome dropped the ActiveX controls that certsrv's
original page depended on. certreq.exe works but only on a
domain-joined Windows host. openssl is great for the crypto
but has no idea what an AD CS template is, no NTLM client, no clue
about CES/CEP, and no notion of how to keep certs from two different
ICAs across two different domains organized.
CertGuard plugs that gap. It does the openssl-equivalent operations locally (no shell-outs, no native libs to bundle), and it knows how to talk AD CS HTTP enrollment across multiple domains under one umbrella root — the topology DoD and regulated shops actually run.
CertGuard seeds this on first run so the CA inventory page renders something sensible. Adjust the hostnames + domains to match your environment and you're configured.
Subject DN + SANs + EKUs. Generate a key in-flight or bring your own.
Pick the issuing CA, pick the template. NTLM / Kerberos / Basic auth. (v0.2)
OCA-SBX root + ICA leaf + your issued cert + key → PFX in one click.
Or convert to whatever format your target needs. Inspect to verify.
Single-binary build per platform. ~19 MB. No Python install required on the target.
certguard-0.1-windows-x64.zip.certguard-0.1-windows-x64.exe → Properties → tick Unblock → OK.127.0.0.1:9988.Need NetGuard Audit at the same time? They run on different ports (NetGuard 9999, CertGuard 9988). Both can be open simultaneously.
OCA-SBX) is captured in the CA inventory so its public cert can be bundled into PFX/PKCS#12 chain outputs, but no traffic is sent to it.ICA-NMC on NMC\scan-user and ICA-IESS on IESS\scan-user side by side in the same CertGuard install.