SslCertBinding.Net 1.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package SslCertBinding.Net --version 1.0.2
NuGet\Install-Package SslCertBinding.Net -Version 1.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SslCertBinding.Net" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SslCertBinding.Net --version 1.0.2
#r "nuget: SslCertBinding.Net, 1.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SslCertBinding.Net as a Cake Addin
#addin nuget:?package=SslCertBinding.Net&version=1.0.2

// Install SslCertBinding.Net as a Cake Tool
#tool nuget:?package=SslCertBinding.Net&version=1.0.2

SslCertBinding.Net

SslCertBinding.Net is a library for .NET and Windows and provides a simple API to add, remove or retrieve bindings between a https port and a SSL certificate.

This library can be considered as a programmatic alternative to Windows command line tools netsh http show|add|delete sslcert or httpcfg query|set|delete ssl.

Installation

SslCertBinding.Net is available as a NuGet package.

Install-Package SslCertBinding.Net

Usage

ICertificateBindingConfiguration config = new CertificateBindingConfiguration();
var ipPort = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 443); 
var certificateThumbprint = "372680E4AEC4A57CAE698307347C65D3CE38AF60";
var appId = Guid.Parse("214124cd-d05b-4309-9af9-9caa44b2b74a");

// add a new binding record
config.Bind( new CertificateBinding(
	certificateThumbprint, StoreName.My, ipPort, appId)); //returns false

// get a binding record
var certificateBinding = config.Query(ipPort)[0];

// set an option and update the binding record
certificateBinding.Options.DoNotVerifyCertificateRevocation = true;
config.Bind(certificateBinding); //returns true

// remove the binding record
config.Delete(ipPort);

FAQ

Why unit tests are failing on my PC?

Cerificates configuration needs elevated permissions. Run Visual Studio as an Administrator before running unit tests.

I am getting the error "A specified logon session does not exist. It may have already been terminated". How to fix it?

Make sure that you have installed your certificate properly, certificate has a privaite key, your private key store is not broken, etc. Try binding your certificate with netsh CLI tool. If you get the same error it should not be a bug in SslCertBinding.Net.

Product Compatible and additional computed target framework versions.
.NET Framework net20 is compatible.  net35 was computed.  net40 was computed.  net403 was computed.  net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on SslCertBinding.Net:

Package Downloads
Cireson.Platform.Core.Host

Platform host.

CompuMaster.Web.TinyWebServerAdvanced

Package Description

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on SslCertBinding.Net:

Repository Stars
lithnet/access-manager
Access Manager provides web-based access to local admin (LAPS) passwords, BitLocker recovery keys, and just-in-time administrative access to Windows computers in a modern, secure, and user-friendly way.
Version Downloads Last updated
2.0.2 718 2/13/2024
2.0.1 185 2/9/2024
2.0.0 1,338 11/20/2023
1.0.2 285,862 9/15/2015
1.0.1 20,955 6/3/2015