Vimexx Facebook

Onderwerp: ACME DNS-01 Ondersteuning?

01-01-2023 22:17

Ondersteunen jullie de DNS-01 challenge type van Acme voor Let's Encrypt aanvragen vanuit een externe server?

Ik wil graag een letsencrypt licentie aanvragen voor een server die niet bij Vimexx staat, maar waarop ik liever poort 80 niet wil openen. De beste oplossing zou dan zijn om de DNS-01 challenge type te gebruiken, maar dat kan alleen automatisch als de dns provider (hier: vimexx) een api heeft om geautomatiseerd dns records aan te passen.

19-01-2023 16:11
#4231

Op https://my.vimexx.nl/api kan je een WHMCS API project aanmaken. Je krijgt dan een client_id en client_secret. Hiermee kan je een access_token voor api.vimexx.nl aanvragen:

curl -X POST https://api.vimexx.nl/auth/token \
   -H 'Content-Type: application/x-www-form-urlencoded' \
    -d 'grant_type=password&client_id=client_id&client_secret=client_secret&username=vimexx_username&password=vimexx_password&scope=whmcs-access'

 

Je krijgt dan een access_token en geldigheid terug:

{"token_type":"Bearer","expires_in":31536000,"access_token":"ey........", "refresh_token":"....."}

 

Met de API kan je DNS-records opvragen en aanpassen:

curl -X POST https://api.vimexx.nl/api/v1/whmcs/domain/dns \
    -H 'Authorization: Bearer ey........' \
    -H 'Content-Type: application/json' \
    -d '{"body":{"sld":"example","tld":"nl"},"version":"8.4.0-release.1"}'

 

{
    "message": "ok",
    "result": true,
    "data": {
        "dns_records": [
            {
                "name": "www.example.nl.",
                "type": "A",
                "content": "185.104.29.1",
                "prio": null
            },
            {
                "name": "smtp.example.nl.",
                "type": "A",
                "content": "185.104.29.1",
                "prio": null
            }
        ]
    }
}

Met PUT kan je de records updaten:

curl -X PUT https://api.vimexx.nl/api/v1/whmcs/domain/dns \
    -H 'Authorization: Bearer ey........' \
    -H 'Content-Type: application/json' \
    -d '{
    "body":{
        "sld": "example",
        "tld": "nl",
        "dns_records": [
            {
                "name": "www.example.nl.",
                "type": "A",
                "content": "185.104.29.1",
                "prio": null
            },
            {
                "name": "smtp.example.nl.",
                "type": "A",
                "content": "185.104.29.1",
                "prio": null
            },
            {
                "name": "_acme-challenge.example.nl.",
                "type": "TXT",
                "content": "abcdefghijklmnopqrstuvwxyz0123456789",
                "prio": null
            }
        ]
     },
    "version": "8.4.0-release.1"
}'

Let op: je moet ook alle bestaande records mee sturen, anders worden ze verwijderd

 

19-01-2023 16:22
#4232

Een makkelijkere manier:

Voeg een CNAME record toe op je domein bij Vimexx naar een domein wat wel ondersteund wordt:

_acme-challenge.example.com IN CNAME _acme-challenge.aliasDomainForValidationOnly.com.

 

Met acme.sh kan je dan een certificaat aanvragen via die alias:

https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode

12-12-2023 21:43
#4771

Is er een plan binnen Vimexx om de DNS-01 challenge api van acme.sh (Let's Encrypt) te ondersteunen? 

Alias mode werkt helaas niet als al mijn domeinen bij Vimexx zitten.

De WHMCS API is voor zover ik heb kunnen ontdekken niet geschikt om zelf deze dnsapi te bouwen. De POST call levert bijvoorbeeld niet de correcte informatie om daarna een update via PUT te doen. En eigenlijk is het voor dnsapi ook niet wenselijk om eerst de dns records op te moeten vragen voor een update van een txt record. 

- 5 van 5 sterren -