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.
Onderwerp: ACME DNS-01 Ondersteuning?
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
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