mirror of
https://github.com/win-acme/win-acme.git
synced 2026-04-27 03:55:56 +03:00
Page:
Custom plugins
Pages
A specified logon session does not exist
Advanced logging
Advanced usage
Apache 2.4 basic usage
Application Logging
Application Settings
Azure DNS validation
Basic usage
CSR Plugins
Command Line Arguments
Command line
Create a SAN certificate
Custom plugins
DNS validation plugins
Development
Enhancement voting
Example Scripts
HTTP Validation Plugins
HTTPS Binding With Specific IP
Home
How To Run
How to Compile From Source Code
IIS 7.5 and Lower
Install script
Installation plugins
Issues and workarounds
Load balancing
Microsoft Exchange
Microsoft Remote Desktop Server
Migration to v1.9.5
Migration to v1.9.9
Migration to v2.0.0
Missing Certificate Chain
Plugins
Renewal Management
Store plugins
Target plugins
Task Scheduler
Uninstall instructions
Upgrades
Validation issues
Validation plugins
web_config.xml
No results
2
Custom plugins
Wouter Tinus edited this page 2019-01-21 22:31:13 +01:00
Table of Contents
Custom plugins
General architecture
A plugin generally exists of at least three classes
- The plugin itself that executes the logic to its job, usually implementing a specific interface
- The options class (inheriting from
PluginOptions) that holds all the information required to execute the plugin in the context of a specific renewal. It should be decorated with [Plugin("{GUID}")] as a unique identifier. - The options factory class (implementing
IPluginOptionsFactory) that gathers the options from the command line and/or from interaction with the user
Often two more classes are added
- A arguments class that holds command line arguments that users can provide to the plugin
- An arguments provider class that implements
IArgumentsProviderdescribes and validates those arguments
Target
Purpose: generate a Target (list of domain names and common name to generate a certificate for). Starting points to inherit from:
TPlugin:ITargetPlugininstance ofTOptionscan be provided to the constructor via DITOptions:TargetPluginOptions<TPlugin>TOptionsFactory:TargetPluginOptionsFactory<TPlugin, TOptions>
Validation
Purpose: validate a single identifier included in the target. Starting points to inherit from:
VPlugin:Validation<VOptions, Http01ChallengeValidationDetails>VOptions:ValidationPluginOptions<VPlugin>VOptionsFactory:ValidationPluginOptionsFactory<VPlugin, VOptions>
CSR
Purpose: generate CSR.
CPlugin:CsrPlugin<CPlugin, COptions>COptions:CsrPluginOptions<CPlugin>COptionsFactory:CsrPluginOptionsFactory<CPlugin, COptions>
Store
Purpose: place the requested certificate somewhere it can be used by applications.
SPlugin:IStorePluginSOptions:StorePluginOptions<SPlugin>SOptionsFactory:StorePluginOptionsFactory<SPlugin, SOptions>
Installation
Purpose: configure an application to use the new certificate.
IPlugin:IInstallationPluginIOptions:InstallationPluginOptions<IPlugin>IOptionsFactory:InstallationPluginFactory<IPlugin, IOptions>
Please refer to https://pkisharp.github.io/win-acme/ for up-to-date documentation.