summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWouter Tinus <win.acme.simple@gmail.com>2020-03-04 21:39:09 +0100
committerWouter Tinus <win.acme.simple@gmail.com>2020-03-04 21:39:09 +0100
commit70362142c245e3b2a8bec0e920f98292ddbc0b9f (patch)
treedca192076e11be2c9dcc70af0528279f9842668b /src
parent7aa5ceebbd8c872efdc38c52fe7cbfce83db5270 (diff)
downloadletsencrypt-win-simple-70362142c245e3b2a8bec0e920f98292ddbc0b9f.zip
letsencrypt-win-simple-70362142c245e3b2a8bec0e920f98292ddbc0b9f.tar.gz
letsencrypt-win-simple-70362142c245e3b2a8bec0e920f98292ddbc0b9f.tar.bz2
fix #1431
Diffstat (limited to 'src')
m---------src/fluent-command-line-parser0
-rw-r--r--src/main.lib/DomainObjects/CertificateInfo.cs28
-rw-r--r--src/main.lib/Plugins/InstallationPlugins/Script/Script.cs4
-rw-r--r--src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSsl.cs2
-rw-r--r--src/main.lib/Plugins/StorePlugins/PemFiles/PemFiles.cs2
-rw-r--r--src/main.lib/Services/CertificateService.cs6
-rw-r--r--src/main.lib/Services/NotificationService.cs2
7 files changed, 24 insertions, 20 deletions
diff --git a/src/fluent-command-line-parser b/src/fluent-command-line-parser
-Subproject 6864598368f667c8b4e44a1c056e7ce7314120d
+Subproject 47edfba7969d1c3a948b580e568b24021d86958
diff --git a/src/main.lib/DomainObjects/CertificateInfo.cs b/src/main.lib/DomainObjects/CertificateInfo.cs
index dcc67b5..3c25a57 100644
--- a/src/main.lib/DomainObjects/CertificateInfo.cs
+++ b/src/main.lib/DomainObjects/CertificateInfo.cs
@@ -1,13 +1,10 @@
-using PKISharp.WACS.Extensions;
-using PKISharp.WACS.Plugins.Base.Options;
-using PKISharp.WACS.Plugins.CsrPlugins;
-using System;
+using System;
using System.Collections.Generic;
-using System.Globalization;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
+using System.Text.RegularExpressions;
namespace PKISharp.WACS.DomainObjects
{
@@ -23,19 +20,26 @@ namespace PKISharp.WACS.DomainObjects
public List<X509Certificate2> Chain { get; set; } = new List<X509Certificate2>();
public FileInfo? CacheFile { get; set; }
public string? CacheFilePassword { get; set; }
- public string SubjectName => Certificate.Subject.Replace("CN=", "").Trim();
-
+ public string CommonName
+ {
+ get
+ {
+ var match = Regex.Match(Certificate.Subject, "CN=([^,]+)");
+ if (match.Success)
+ {
+ return match.Groups[1].Value.Trim();
+ }
+ return SanNames.First();
+ }
+ }
+
public Dictionary<Type, StoreInfo> StoreInfo { get; set; } = new Dictionary<Type, StoreInfo>();
- public List<string> HostNames
+ public List<string> SanNames
{
get
{
var ret = new List<string>();
- if (Certificate == null)
- {
- return ret;
- }
foreach (var x in Certificate.Extensions)
{
if (x.Oid.Value.Equals("2.5.29.17"))
diff --git a/src/main.lib/Plugins/InstallationPlugins/Script/Script.cs b/src/main.lib/Plugins/InstallationPlugins/Script/Script.cs
index f91dcef..2755bab 100644
--- a/src/main.lib/Plugins/InstallationPlugins/Script/Script.cs
+++ b/src/main.lib/Plugins/InstallationPlugins/Script/Script.cs
@@ -27,7 +27,7 @@ namespace PKISharp.WACS.Plugins.InstallationPlugins
var defaultStoreType = store.First().GetType();
var defaultStoreInfo = newCertificate.StoreInfo[defaultStoreType];
var parameters = _options.ScriptParameters ?? "";
- parameters = parameters.Replace("{0}", newCertificate.SubjectName);
+ parameters = parameters.Replace("{0}", newCertificate.CommonName);
parameters = parameters.Replace("{1}", _renewal.PfxPassword?.Value);
parameters = parameters.Replace("{2}", newCertificate.CacheFile?.FullName);
parameters = parameters.Replace("{3}", defaultStoreInfo.Path);
@@ -39,7 +39,7 @@ namespace PKISharp.WACS.Plugins.InstallationPlugins
parameters = parameters.Replace("{CachePassword}", _renewal.PfxPassword?.Value);
parameters = parameters.Replace("{CacheFile}", newCertificate.CacheFile?.FullName);
parameters = parameters.Replace("{CacheFolder}", newCertificate.CacheFile?.FullName);
- parameters = parameters.Replace("{CertCommonName}", newCertificate.SubjectName);
+ parameters = parameters.Replace("{CertCommonName}", newCertificate.CommonName);
parameters = parameters.Replace("{CertFriendlyName}", newCertificate.Certificate.FriendlyName);
parameters = parameters.Replace("{CertThumbprint}", newCertificate.Certificate.Thumbprint);
parameters = parameters.Replace("{StoreType}", defaultStoreInfo.Name);
diff --git a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSsl.cs b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSsl.cs
index 025f24a..c6eeb65 100644
--- a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSsl.cs
+++ b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSsl.cs
@@ -43,7 +43,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins
public Task Save(CertificateInfo input)
{
_log.Information("Copying certificate to the Central SSL store");
- IEnumerable<string> targets = input.HostNames;
+ IEnumerable<string> targets = input.SanNames;
foreach (var identifier in targets)
{
var dest = Path.Combine(_path, $"{identifier.Replace("*", "_")}.pfx");
diff --git a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFiles.cs b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFiles.cs
index 243dfe0..e495a8b 100644
--- a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFiles.cs
+++ b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFiles.cs
@@ -45,7 +45,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins
try
{
// Determine name
- var name = input.SubjectName.Replace("*", "_");
+ var name = input.CommonName.Replace("*", "_");
// Base certificate
var certificateExport = input.Certificate.Export(X509ContentType.Cert);
diff --git a/src/main.lib/Services/CertificateService.cs b/src/main.lib/Services/CertificateService.cs
index d30e601..b577ab3 100644
--- a/src/main.lib/Services/CertificateService.cs
+++ b/src/main.lib/Services/CertificateService.cs
@@ -195,9 +195,9 @@ namespace PKISharp.WACS.Services
{
var identifiers = target.GetHosts(false);
var idn = new IdnMapping();
- return info.SubjectName == idn.GetAscii(target.CommonName) &&
- info.HostNames.Count == identifiers.Count() &&
- info.HostNames.All(h => identifiers.Contains(idn.GetAscii(h)));
+ return info.CommonName == idn.GetAscii(target.CommonName) &&
+ info.SanNames.Count == identifiers.Count() &&
+ info.SanNames.All(h => identifiers.Contains(idn.GetAscii(h)));
}
/// <summary>
diff --git a/src/main.lib/Services/NotificationService.cs b/src/main.lib/Services/NotificationService.cs
index 6800094..29c2858 100644
--- a/src/main.lib/Services/NotificationService.cs
+++ b/src/main.lib/Services/NotificationService.cs
@@ -96,7 +96,7 @@ namespace PKISharp.WACS.Services
}
else
{
- return string.Join(", ", cache.HostNames);
+ return string.Join(", ", cache.SanNames);
}
}
catch