OCSPResponder
A .NET facility to create an OCSP Responder. Written in C# under netstandard it has support for .NET Full and .NET Core
Install / Use
/learn @gabrielcalegari/OCSPResponderREADME
OCSPResponder
A .NET facility to create an OCSP Responder
What is this?
OCSPResponder is a library written in C# that enables you to easily create an OCSP Responder in .NET. All you need is to implement an interface for the CA/Authorized Responder. It follows the OCSP protocol defined in RFC 6960.
How do I use it?
.NET Core
- Install OCSPResponder.AspNetCore via NuGet. This package contains OCSPResponder.Core as dependency.
- Implement the IOcspResponderRepository interface for your CA.
- Configure in your Dependency Injector to use the class OcspResponder for the interface IOcspResponder.
- Configure in your Dependency Injector to use the class that you implemented for the interface IOcspResponderRepository.
- Create a WebAPI Controller and call OcspResponder.Respond() passing the HttpRequest.ToOcspRequest().
- Done! You've been configured your OCSP Responder.
Example
/Controllers/OcspController.cs
[Route("api/ocsp")]
public class OcspController : Controller
{
[HttpGet]
public async Task<IActionResult> Get(string encoded)
{
var ocspHttpRequest = await Request.ToOcspHttpRequest();
var ocspHttpResponse = await OcspResponder.Respond(ocspHttpRequest);
return new OcspActionResult(ocspHttpResponse);
}
[HttpPost]
public async Task<IActionResult> Post()
{
var ocspHttpRequest = await Request.ToOcspHttpRequest();
var ocspHttpResponse = await OcspResponder.Respond(ocspHttpRequest);
return new OcspActionResult(ocspHttpResponse);
}
private IOcspResponder OcspResponder { get; }
public OcspController(IOcspResponder ocspResponder)
{
OcspResponder = ocspResponder;
}
}
.NET Framework
- Install OCSPResponder.Core via NuGet.
- Implement the IOcspResponderRepository interface for your CA.
- Configure in your Dependency Injector to use the class OcspResponder for the interface IOcspResponder.
- Configure in your Dependency Injector to use the class that you implemented for the interface IOcspResponderRepository.
- Create a WebAPI Controller and call OcspResponder.Respond() passing the HttpRequestMessage.ToOcspHttpRequest().
- Done! You've been configured your OCSP Responder.
Example
/Controllers/OcspController.cs
[RoutePrefix("api/ocsp")]
public class OcspController : Controller
{
[Route("{encoded}"]
public Task<HttpResponseMessage> Get(string encoded)
{
var ocspHttpResponse = await OcspResponder.Respond(Request.ToOcspHttpRequest());
return ocspHttpResponse.toHttpResponseMessage();
}
[Route("")]
public Task<HttpResponseMessage> Post()
{
var ocspHttpResponse = await OcspResponder.Respond(Request.ToOcspHttpRequest());
return ocspHttpResponse.toHttpResponseMessage();
}
private IOcspResponder OcspResponder { get; }
public OcspController(IOcspResponder ocspResponder)
{
OcspResponder = ocspResponder;
}
}
License
Code by Gabriel Calegari. Copyright 2018 Gabriel Calegari.
This library is intended to be used in both open-source and commercial environments. It is under Apache 2.0 license.
Refer to the LICENSE for detailed information.
Any questions, comments or additions?
If you have a feature request or bug report, leave an issue on the issues page or send a pull request. For general questions and comments, use the StackOverflow forum.
Related Skills
openhue
348.2kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
348.2kElevenLabs text-to-speech with mac-style say UX.
weather
348.2kGet current weather and forecasts via wttr.in or Open-Meteo
tweakcc
1.6kCustomize Claude Code's system prompts, create custom toolsets, input pattern highlighters, themes/thinking verbs/spinners, customize input box & user message styling, support AGENTS.md, unlock private/unreleased features, and much more. Supports both native/npm installs on all platforms.
