go-acme / lego

Let's Encrypt/ACME client and library written in Go
https://go-acme.github.io/lego/
MIT License
8.06k stars 1.03k forks source link

Support for ISPConfig DNS API #1210

Open qroac opened 4 years ago

qroac commented 4 years ago

Would be great to have support for Domains hosted on ISPConfig managed environments.

I already found a module for dns challenges with ISPConfig for acme.sh:
https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/dns_ispconfig.sh

As this library is used by traefik for dns challenges, I hope you consider adding support for ISPConfig in the future.

ldez commented 4 years ago

Hello,

We (the lego maintainers) don't have an account in all DNS providers in the world.

By default, we do not create the support of a DNS provider that we are not able to handle. It is therefore necessary that a contributor, having an account for the DNS provider:

qroac commented 4 years ago

I unfortunatly do not speak Go, but I could support someone who does to build a module for ISPConfig.

As ISPConfig is a hosting software like CPanel, I could setup a test installation for running implementation tests with the module. For running tests in a local environment, a local setup of ISPConfig can be used by everyone. Using my recently relased puppet module, installation and configuration of ISPConfig panel server and managed DNS server can be automated on fresh debian instances. https://forge.puppet.com/qroac/isp3node

To manage DNS TXT records in ISPConfig, the script would need to use SOAP with the following parameters:

Unfortunatly the documentation of the ISPConfig remote API is very ... weak. https://www.howtoforge.com/how-to-create-remote-api-scripts-for-ispconfig-3
But there are a couple of code examples in the git repository:
https://git.ispconfig.org/ispconfig/ispconfig3/-/tree/master/remoting_client
Furthermore the project maintainers are very active and helpful in the howtoforge forum.

I could also help to figure out the correct communication with the API.
Further examples for communication with the ISPConfig API can be taken from some code I wrote in PHP, that interferes with the API:

Examining the bash code from the acme.sh module, the provider module would need to call the following soap methods:

Haringstad commented 1 year ago

Gents, due to the fact that I do run a couple of ISPConfig environments, I can provide you with a test-environment so you can implement this? Whenever the developers are willing, please PM me and let us set it up! Consider it my donation to support this great project. And yes, I am willing to write & maintain documentation for it.

ldez commented 1 year ago

Hello @Haringstad,

if you are able to provide documentation for the API (not PHP documentation, not a Bash script, just simple API documentation), I can work on it.

I only need a few pieces of information:

Haringstad commented 1 year ago

Ludovic,

I will get this to you, but please give me a little time on this, due to the fact that I have to get information about this myself too.

Regards,

Jacco van Koll

ldez commented 1 year ago

@Haringstad any news? do you need help?

Haringstad commented 1 year ago

Hey Ludovic, Pretty busy with a regular job. (Lots of events to build here in NL). But I am working on it!

Jacco van Koll

ldez commented 2 months ago

@Haringstad any news?

Haringstad commented 2 months ago

Ludovic,

A medical issue took over. Will keep you posted tho!

Regards,

Jacco van Koll