[pve-devel] applied-series: (no subject)

Thomas Lamprecht t.lamprecht at proxmox.com
Sun May 3 19:15:06 CEST 2020


On 4/16/20 7:18 AM, Wolfgang Link wrote:
> From Wolfgang Link <w.link at proxmox.com> # This line is ignored.
> From: Wolfgang Link <w.link at proxmox.com>
> Reply-To: 
> Subject:  RFC for ACME DNS Challenge V3
> In-Reply-To: 
> 
> The acme_sh project is used as a DNS API plugin system.
> So we can reuse the already defiend plugins.
> It is used as subplugins.
> 
> The acme.sh script is replaced by proxmox-acme,
> which contains the function required to operate the DNSAPI plug-ins.
> 
> The login information is saved in the file plugin.cfg.
> The values are encoded in base64 and transferred directly to proxmox-acme.
> There they are decoded again
> 
> The DNSAPI plugin credentials are not standardized, so each plugin expects different parameters.
> 
> These patches are only tested against the OVH API because of missing alternative possibilities.
> 
> The V3 is mainly based on V2, but has the improvements of Fabian's feedback.
> For more information see  below.
> 
> Build conflicts arise due to the code movements.
> The prerequisite for this series is the installation of Curl.
> For this series you have to create the deb packages pve-common, pve-cluster and proxmox-acme.
> Then apply these packages and you can now build and install the pve-manager package.
> 
> The GUI works at the moment only with the standalone Plugin(HTTP Challenge).
> 
> For the alias mode a CNAME record is needed
> _acme-challenge.<host>.<domain>.<TLD> 	CNAME 	_acme-challenge.<Alias Target>
> 
> Steps to test.
> 
> 1.) pvenode acme account register default <mail at example.invalid>
> 2.) pvenode acme plugin add <dns|standalone> <plugin_id> --data <login information> 
> 3.) pvenode config set --acme domain=<Domain>,plugin=<plugin_id>[,alias=<alias_domain>]
> 4.) pvenode acme cert order
> 

applied series from Fabians tree with followups and have thrown a few on top
of that, among others:
 * stricter checking on write, else one could write the same domain multiple times
   but get node config complained (died) then.
 * check if plugin is defined when setting it for a domain
 * adding validation-delay for DNS plugins, so that the request for validation can be
   delayed, e.g., to ensure initial DNS propagation (commit message for details)
 * reduction of delays between validation request and checking said request
 * reduction of per-node domains of maximal 5, increasing is way easier than
   decreasing after all :)
 * creating of observed files base directory in pve-cluster, as else adding an
   plugin failed if the /etc/pve/priv/acme directory didn't already exists
 * fixing various leftover cruft from copying the whole plugin handling over
   from pve-storage's content API
 * various smaller and mid-size cleanups here and there

Those are the obvious from me coming in my mind, the ones from Fabian are
separate, but I cannot bother to search and list them out for now.

A plugin CRUD gui should be pretty easy to do, maybe an hour task for Dominik
on Monday ;-) The rest would be then pretty straight forward to integrate.

A big thanks to Fabian for keeping up initially when I was a bit^W^W totally out
of time, and smoothing some rough edges.




More information about the pve-devel mailing list