summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWouter Tinus <win.acme.simple@gmail.com>2020-01-19 08:38:29 +0100
committerWouter Tinus <win.acme.simple@gmail.com>2020-01-19 08:38:29 +0100
commitcea47f96b29ff445aae1e90d76313f83c2c253be (patch)
treefaf203068e0b599e681c4c904ce7ac3f921d009b
parentfe0868448288d20cd24135d640c1d7e0f7490e3f (diff)
downloadletsencrypt-win-simple-cea47f96b29ff445aae1e90d76313f83c2c253be.zip
letsencrypt-win-simple-cea47f96b29ff445aae1e90d76313f83c2c253be.tar.gz
letsencrypt-win-simple-cea47f96b29ff445aae1e90d76313f83c2c253be.tar.bz2
null store fix and docs
-rw-r--r--docs/reference/plugins/installation/index.md13
-rw-r--r--docs/reference/plugins/store/index.md22
-rw-r--r--src/main.lib/Plugins/Base/OptionsFactories/Null/NullStoreOptionsFactory.cs15
3 files changed, 32 insertions, 18 deletions
diff --git a/docs/reference/plugins/installation/index.md b/docs/reference/plugins/installation/index.md
index 1cfd89a..a031317 100644
--- a/docs/reference/plugins/installation/index.md
+++ b/docs/reference/plugins/installation/index.md
@@ -8,11 +8,14 @@ application(s) after successfully creating or renewing a certificate. Currently
there are three of these plugins.
## Multiple
-More than one plugin can run by choosing them in order of execution. In interactive mode you
-will be asked, for unattended mode you can provide a comma seperated list,
+More than one plugin can run by choosing them in order of execution. In interactive
+mode you will be asked, for unattended mode you can provide a comma seperated list,
e.g. `--installation certificatestore,pemfiles`
-## Default
+## Default (simple mode)
In simple mode the default installation plugin is [IIS Web](/win-acme/reference/plugins/installation/iisweb).
-In full options and unattended modes there are no default installation steps, you have to explicitly
-choose them from the interface or using the `--installation` switch. \ No newline at end of file
+
+## Default (full options / unattended)
+In full options and unattended modes there are **no** default installation steps,
+which is equivalent to `--installation none`. You can to explicitly choose them
+from the interface or using the `--installation` switch. \ No newline at end of file
diff --git a/docs/reference/plugins/store/index.md b/docs/reference/plugins/store/index.md
index e77fb74..17988a1 100644
--- a/docs/reference/plugins/store/index.md
+++ b/docs/reference/plugins/store/index.md
@@ -3,19 +3,21 @@ sidebar: reference
---
# Store plugins
-
-Store plugins are responsible for storing issued certificates in their permanent location(s).
-The program will cache the certificate in a `.pfx` file in its CertificatePath (which defaults
-to `%programdata%\win-acme\certificates`) but these files are protected by random passwords to
-prevent local non-administrators from obtaining keys. Store plugins are responsible for making
-the certificates accessible to the application(s) that need them.
+Store plugins are responsible for storing issued certificates in their permanent
+location(s). The program will cache the certificate in a `.pfx` file in its
+CertificatePath (which defaults to `%programdata%\win-acme\[baseuri]certificates`) but
+these files are protected by random passwords to prevent local non-administrators
+from obtaining keys. Store plugins are responsible for making the certificates
+accessible to the application(s) that need them.
## Multiple
-
-More than one plugin can run by choosing them in order of execution. In interactive mode you
-will be asked, for unattended mode you can provide a comma seperated list,
+More than one plugin can run by choosing them in order of execution. In interactive
+mode you will be asked, for unattended mode you can provide a comma seperated list,
e.g. `--store certificatestore,pemfiles`
## Default
+The default is the [Windows Certificate Store](/win-acme/reference/plugins/store/certificatestore).
-The default is the [Windows Certificate Store](/win-acme/reference/plugins/store/certificatestore). \ No newline at end of file
+## None
+To instruct the program not to use any store, for example when your installation
+script handles it, you may specify `--store none` \ No newline at end of file
diff --git a/src/main.lib/Plugins/Base/OptionsFactories/Null/NullStoreOptionsFactory.cs b/src/main.lib/Plugins/Base/OptionsFactories/Null/NullStoreOptionsFactory.cs
index 20f54e6..1488a74 100644
--- a/src/main.lib/Plugins/Base/OptionsFactories/Null/NullStoreOptionsFactory.cs
+++ b/src/main.lib/Plugins/Base/OptionsFactories/Null/NullStoreOptionsFactory.cs
@@ -18,7 +18,7 @@ namespace PKISharp.WACS.Plugins.Base.Factories.Null
Task<StorePluginOptions?> IStorePluginOptionsFactory.Aquire(IInputService inputService, RunLevel runLevel) => Generate();
Task<StorePluginOptions?> IStorePluginOptionsFactory.Default() => Generate();
bool IPluginOptionsFactory.Disabled => false;
- string IPluginOptionsFactory.Name => new NullStoreOptions().Name;
+ string IPluginOptionsFactory.Name => NullStoreOptions.PluginName;
string IPluginOptionsFactory.Description => new NullStoreOptions().Description;
bool IPluginOptionsFactory.Match(string name) => string.Equals(name, new NullInstallationOptions().Name, StringComparison.CurrentCultureIgnoreCase);
int IPluginOptionsFactory.Order => int.MaxValue;
@@ -27,7 +27,8 @@ namespace PKISharp.WACS.Plugins.Base.Factories.Null
[Plugin("cfdd7caa-ba34-4e9e-b9de-2a3d64c4f4ec")]
internal class NullStoreOptions : StorePluginOptions<NullStore>
{
- public override string Name => "None";
+ internal const string PluginName = "None";
+ public override string Name => PluginName;
public override string Description => "No (additional) installation steps";
}
@@ -35,7 +36,15 @@ namespace PKISharp.WACS.Plugins.Base.Factories.Null
{
bool IPlugin.Disabled => false;
public Task Delete(CertificateInfo certificateInfo) => Task.CompletedTask;
- public Task Save(CertificateInfo certificateInfo) => Task.CompletedTask;
+ public Task Save(CertificateInfo certificateInfo) {
+ certificateInfo.StoreInfo.Add(GetType(),
+ new StoreInfo()
+ {
+ Name = NullStoreOptions.PluginName,
+ Path = ""
+ });
+ return Task.CompletedTask;
+ }
}
}