From 804a9a101ef6a3f3621486250dc5667b68de8737 Mon Sep 17 00:00:00 2001 From: Christopher Cook Date: Mon, 10 Feb 2025 13:23:28 +0800 Subject: [PATCH] Implement Porkbun and INWX providers via Posh-ACME fix #693 --- .../Providers/DnsProviderPoshACME.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/Certify.Shared.Extensions/Providers/DnsProviderPoshACME.cs b/src/Certify.Shared.Extensions/Providers/DnsProviderPoshACME.cs index c358f87f9..db9c0f347 100644 --- a/src/Certify.Shared.Extensions/Providers/DnsProviderPoshACME.cs +++ b/src/Certify.Shared.Extensions/Providers/DnsProviderPoshACME.cs @@ -43,6 +43,7 @@ [Google Domains](https://poshac.me/docs/latest/Plugins/GoogleDomains), [Hurricane Electric](https://poshac.me/docs/latest/Plugins/HurricaneElectric), [Infoblox](https://poshac.me/docs/latest/Plugins/Infoblox), [Infomaniak](https://poshac.me/docs/latest/Plugins/Infomaniak) + [INWX](https://poshac.me/docs/latest/Plugins/INWX) [IONOS](https://poshac.me/docs/latest/Plugins/IONOS) [IBM Cloud/SoftLayer](https://poshac.me/docs/latest/Plugins/IBMSoftLayer), [ISPConfig](https://poshac.me/docs/latest/Plugins/ISPConfig), @@ -54,6 +55,7 @@ [Hurricane Electric](https://poshac.me/docs/latest/Plugins/HurricaneElectric), [Namecheap](https://poshac.me/docs/latest/Plugins/Namecheap) [NS1](https://poshac.me/docs/latest/Plugins/NS1), [PointDNS](https://poshac.me/docs/latest/Plugins/PointDNS), + [Porkbun](https://poshac.me/docs/latest/Plugins/Porkbun), [PowerDNS](https://poshac.me/docs/latest/Plugins/PowerDNS), [Rackspace](https://poshac.me/docs/latest/Plugins/Rackspace), [RFC2136](https://poshac.me/docs/latest/Plugins/RFC2136), @@ -747,6 +749,25 @@ public List GetProviders(Type pluginType) IsTestModeSupported = true, IsExperimental = true }, + new ChallengeProviderDefinition + { + Id = "DNS01.API.PoshACME.INWX", + Title = "INWX API (using Posh-ACME)", + Description = "Validates via DNS API using credentials", + HelpUrl = "https://poshac.me/docs/latest/Plugins/INWX/", + PropagationDelaySeconds = DefaultPropagationDelay, + ProviderParameters = new List + { + new ProviderParameter { Key = "INWXUsername", Name = "API Username", IsRequired = true, IsCredential = true }, + new ProviderParameter { Key = "INWXPassword", Name = "API Password", IsRequired = true, IsCredential = true, ExtendedConfig=_paramIsSecureStringConfig }, + _defaultPropagationDelayParam + }, + ChallengeType = Models.SupportedChallengeTypes.CHALLENGE_TYPE_DNS, + Config = "Provider=Certify.Providers.DNS.PoshACME;Script=INWX", + HandlerType = ChallengeHandlerType.POWERSHELL, + IsTestModeSupported = true, + IsExperimental = true + }, new ChallengeProviderDefinition { Id = "DNS01.API.PoshACME.IONOS", @@ -918,6 +939,25 @@ public List GetProviders(Type pluginType) IsExperimental = true }, new ChallengeProviderDefinition + { + Id = "DNS01.API.PoshACME.Porkbun", + Title = "Porkbun API (using Posh-ACME)", + Description = "Validates via DNS API using credentials", + HelpUrl = "https://poshac.me/docs/latest/Plugins/Porkbun/", + PropagationDelaySeconds = DefaultPropagationDelay, + ProviderParameters = new List + { + new ProviderParameter { Key = "PorkbunAPIKey", Name = "API Key", IsRequired = true, IsCredential = true, ExtendedConfig=_paramIsSecureStringConfig }, + new ProviderParameter { Key = "PorkbunSecret", Name = "API Secret", IsRequired = true, IsCredential = true, ExtendedConfig=_paramIsSecureStringConfig }, + _defaultPropagationDelayParam + }, + ChallengeType = Models.SupportedChallengeTypes.CHALLENGE_TYPE_DNS, + Config = "Provider=Certify.Providers.DNS.PoshACME;Script=Porkbun", + HandlerType = ChallengeHandlerType.POWERSHELL, + IsTestModeSupported = true, + IsExperimental = true + }, + new ChallengeProviderDefinition { Id = "DNS01.API.PoshACME.PowerDNS", Title = "PowerDNS API (using Posh-ACME)",