- US-English
- Deutsch
- Español
- Français
- Português
- Italiano
- 繁體中文(香港)
- 한국어
- हिन्दी
- Русский
- العربية
- Kiswahili
- 日本語
- Kreyòl Ayisyen
- ʻŌlelo Hawaiʻi
- Gagana Sāmoa
- Te Reo Māori
- Afrikaans
- Nederlands
- Hausa
- አማርኛ
- Yorùbá
- বাংলা
- 简体中文
- Eesti
- Suomi
- Svenska
- Norsk
- Українська
- ไทย
- Bahasa Indonesia
- Tagalog
- Bahasa Melayu
- Basa Jawa
- Ελληνικά
- Latina
- עברית
- Gaeilge
OpenBSDOCSPServer is an ASP.NET Core OCSP responder for OpenBSD-style PKI operations.
Main features:
- Serves OCSP responses over
POST /ocspandGET /ocsp/{base64url-request}. - Signs OCSP responses using responder credentials from PFX or PEM files.
- Provides an authenticated admin UI to review certificates, revoke/reinstate status, and add notes.
- Imports certificate status data from OpenSSL
index.txt, simple text files, and live OCSP proxy sync. - Stores certificate status data in SQLite.
- Supports security hardening features such as strict headers, optional mTLS, and optional Entra ID admin authentication.
- Supports localized MVC UI text with a language selector in the top navigation.
The web UI supports the following cultures (selectable from the Language menu in the site header):
en-US, de-DE, es-ES, fr-FR, pt-PT, it-IT, zh-HK, ko-KR, hi-IN, ru-RU, ar-SA, sw-KE, ja-JP, ht-HT, haw-US, sm-WS, mi-NZ, af-ZA, nl-NL, ha-NG, am-ET, yo-NG, bn-BD, zh-CN, et-EE, fi-FI, sv-SE, nb-NO, uk-UA, th-TH, id-ID, tl-PH, ms-MY, jv-ID, el-GR, la-VA, he-IL, ga-IE.
Language preference is stored with the ASP.NET Core culture cookie and reused on later requests.
- RFC 6960 — X.509 Internet Public Key Infrastructure Online Certificate Status Protocol (OCSP).
- RFC 5019 — The Lightweight Online Certificate Status Protocol (OCSP) Profile for High-Volume Environments.
- RFC 8954 — OCSP Nonce Extension.
- Install .NET SDK 9.0.
- Clone this repository.
- Build the server:
dotnet build OcspServer/OcspServer.csproj
- Run tests (recommended):
dotnet test OcspServer.Tests/OcspServer.Tests.csproj
- Run the application:
dotnet run --project OcspServer/OcspServer.csproj
Edit OcspServer/appsettings.json (or environment variables/user secrets) for these sections:
FeatureFlagsEnableAdminAuth,EnableEntraIdAuth,EnableMtls,EnableSession,EnableSecurityHeaders,EnableIndexTxtWatch
OcspServerPfxPath,PfxPassword(optional)- or
ResponderCertPath,SigningKeyPath,SigningKeyPassword NextUpdateHours,AllowNonce,RequireNonce,MaxNonceSizeBytes,AllowGetRequests,AllowPostRequests
AdminAuthAdminUsername,AdminPasswordHash,SessionTimeoutMinutes
AzureAd(only whenEnableEntraIdAuthis true)Instance,TenantId,ClientId,ClientSecret,AdminGroupId,CallbackPath,SignedOutCallbackPath
IngestionDatabasePath,IndexTxtWatchPath,PollingIntervalMinutes,LocalOcspResponderUrl
- Prepare OCSP signing credentials:
- Either provide
OcspServer.PfxPath(+ optional password), - or provide PEM files at
OcspServer.ResponderCertPathandOcspServer.SigningKeyPath.
- Either provide
- Configure admin authentication:
- Local admin mode: set
FeatureFlags.EnableAdminAuth=trueand setAdminAuth.AdminPasswordHashin PBKDF2 format (iterations:base64salt:base64hash). - Entra mode: set
FeatureFlags.EnableEntraIdAuth=trueand fillAzureAdsettings.
- Local admin mode: set
- Set
Ingestion.DatabasePath(defaultocsp.db) and start the app. - Open the admin UI at
/adminand import certificate records (index.txt, text file, or OCSP proxy sync). - Point OCSP clients to:
POST /ocspwithapplication/ocsp-request, orGET /ocsp/{base64url-encoded-der-request}
- Verify production settings (HTTPS, security headers, auth mode, and signer cert expiry monitoring in dashboard).