Tidy up links
parent
a002376897
commit
43f869667e
|
@ -5,7 +5,7 @@ This guide is to help any developer interested to build a brand new DNS API for
|
||||||
## Some useful tips
|
## Some useful tips
|
||||||
|
|
||||||
1. It's normal to run into errors, so do use `--debug 2` when testing. For e.g., `acme.sh --issue --debug 2 -d example.com --dns dns_myapi`
|
1. It's normal to run into errors, so do use `--debug 2` when testing. For e.g., `acme.sh --issue --debug 2 -d example.com --dns dns_myapi`
|
||||||
2. It's normal to burst rate limits for letsencrypt, so do use `--staging` when testing. For e.g., `acme.sh --issue --staging --debug 2 -d example.com --dns dns_myapi` Read [issue 1787](https://github.com/acmesh-official/acme.sh/issues/1787) for details. Remember to remove `--staging` after testing.
|
2. It's normal to burst rate limits for Let's Encrypt, so do use `--staging` when testing. For e.g., `acme.sh --issue --staging --debug 2 -d example.com --dns dns_myapi` Read [issue 1787](https://github.com/acmesh-official/acme.sh/issues/1787) for details. Remember to remove `--staging` after testing.
|
||||||
|
|
||||||
|
|
||||||
Let's assume your API name is `myapi`, and you will use your API like:
|
Let's assume your API name is `myapi`, and you will use your API like:
|
||||||
|
@ -34,7 +34,6 @@ Here we go:
|
||||||
acme.sh searches the script files in either the acme.sh home dir(`.acme.sh/`) or in the `dnsapi` subfolder(`.acme.sh/dnsapi`).
|
acme.sh searches the script files in either the acme.sh home dir(`.acme.sh/`) or in the `dnsapi` subfolder(`.acme.sh/dnsapi`).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 4. There must be 2 functions in your script:
|
### 4. There must be 2 functions in your script:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -47,7 +46,7 @@ Here we go:
|
||||||
dns_myapi_rm() { }
|
dns_myapi_rm() { }
|
||||||
|
|
||||||
```
|
```
|
||||||
Actually, the `dns_myapi_add()` is required, but `dns_myapi_rm()` is optional. You can just write the add function at the beginning for testing purposes, it's `highly recommended` to implement the rm function too. Otherwise, your txt records will increase 1 every 2 months.
|
Actually, the `dns_myapi_add()` is required, but `dns_myapi_rm()` is optional. You can just write the add function at the beginning for testing purposes, it's `highly recommended` to implement the rm function too. Otherwise, your TXT records will increase 1 every 2 months.
|
||||||
|
|
||||||
|
|
||||||
### 5. Guide for the add function
|
### 5. Guide for the add function
|
||||||
|
@ -100,8 +99,8 @@ The full domain could be in either one of the following formats:
|
||||||
4. `_acme-challenge.www.example.co.uk`
|
4. `_acme-challenge.www.example.co.uk`
|
||||||
5. `_acme-challenge.sub1.sub2.www.example.co.uk`
|
5. `_acme-challenge.sub1.sub2.www.example.co.uk`
|
||||||
6. `sub1.sub2.example.co.uk`
|
6. `sub1.sub2.example.co.uk`
|
||||||
7. `example.com` ( For [DNS alias mode](https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode))
|
7. `example.com` (For [DNS alias mode](https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode))
|
||||||
8. `example.co.uk` ( For [DNS alias mode](https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode))
|
8. `example.co.uk` (For [DNS alias mode](https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode))
|
||||||
|
|
||||||
For most of the DNS providers, you must determine which part is the domain root zone(example.com or example.co.uk), and which part is the subdomain(_acme-challenge or _acme-challenge.www)
|
For most of the DNS providers, you must determine which part is the domain root zone(example.com or example.co.uk), and which part is the subdomain(_acme-challenge or _acme-challenge.www)
|
||||||
|
|
||||||
|
@ -110,8 +109,7 @@ Please make sure you can handle all the formats above.*
|
||||||
|
|
||||||
A good practice is to list all your root zones through your DNS API, then compare and detect which part is the root zone. Then the rest is the subdomain.
|
A good practice is to list all your root zones through your DNS API, then compare and detect which part is the root zone. Then the rest is the subdomain.
|
||||||
|
|
||||||
See:
|
See: https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/dns_cf.sh#L142
|
||||||
https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/dns_cf.sh#L142
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
dns_myapi_add() {
|
dns_myapi_add() {
|
||||||
|
@ -136,9 +134,9 @@ So, you can just use the HTTP GET/POST/PUT/DELETE method to call their API to ad
|
||||||
|
|
||||||
acme.sh defined two functions to make http GET/POST/PUT/DELETE connections.
|
acme.sh defined two functions to make http GET/POST/PUT/DELETE connections.
|
||||||
|
|
||||||
see:
|
See:
|
||||||
https://github.com/acmesh-official/acme.sh/blob/8ded524236347d5a1f7a3169809cab9cf363a1c8/acme.sh#L2013
|
- https://github.com/acmesh-official/acme.sh/blob/8ded524236347d5a1f7a3169809cab9cf363a1c8/acme.sh#L2013
|
||||||
https://github.com/acmesh-official/acme.sh/blob/8ded524236347d5a1f7a3169809cab9cf363a1c8/acme.sh#L1887
|
- https://github.com/acmesh-official/acme.sh/blob/8ded524236347d5a1f7a3169809cab9cf363a1c8/acme.sh#L1887
|
||||||
|
|
||||||
```
|
```
|
||||||
_get() {}
|
_get() {}
|
||||||
|
@ -150,8 +148,8 @@ You can use them directly.
|
||||||
Please take care that the `_post()` function can send POST/PUT/DELETE requests, not just `POST`.
|
Please take care that the `_post()` function can send POST/PUT/DELETE requests, not just `POST`.
|
||||||
|
|
||||||
See:
|
See:
|
||||||
https://github.com/acmesh-official/acme.sh/blob/975a7359a23cd5f8335aca58ceab552d8d967ea7/dnsapi/dns_infoblox.sh#L85
|
- https://github.com/acmesh-official/acme.sh/blob/975a7359a23cd5f8335aca58ceab552d8d967ea7/dnsapi/dns_infoblox.sh#L85
|
||||||
https://github.com/acmesh-official/acme.sh/blob/ded7a5438ce94c4dd0435068de5c0c384b60e4dd/dnsapi/dns_cf.sh#L73
|
- https://github.com/acmesh-official/acme.sh/blob/ded7a5438ce94c4dd0435068de5c0c384b60e4dd/dnsapi/dns_cf.sh#L73
|
||||||
|
|
||||||
Do not use `curl` or `wget` directly in your script.
|
Do not use `curl` or `wget` directly in your script.
|
||||||
|
|
||||||
|
@ -177,7 +175,7 @@ _acme-challenge.example.com. 3600 IN TXT "XhVGx_0VVeR5yiaGLHHXrRl2sAbZhI7IugMSdb
|
||||||
|
|
||||||
#### 5. Additional HTTP headers.
|
#### 5. Additional HTTP headers.
|
||||||
|
|
||||||
Your HTTP method call may require additional headers for Authorization, ContentType, Accept, Cookies, etc. for the DNS providers api to add/remove the txt record. You can export _H*n* (_H1, _H2, _H3, etc.) environment variables with the [HTTP header](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields) needed:
|
Your HTTP method call may require additional headers for Authorization, ContentType, Accept, Cookies, etc. for the DNS providers API to add/remove the txt record. You can export _H*n* (_H1, _H2, _H3, etc.) environment variables with the [HTTP header](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields) needed:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
...
|
...
|
||||||
|
@ -221,8 +219,7 @@ Please take care that the rm function and add function are called in 2 different
|
||||||
|
|
||||||
You must re-do all the preparations of the add function here too.
|
You must re-do all the preparations of the add function here too.
|
||||||
|
|
||||||
See:
|
See: https://github.com/acmesh-official/acme.sh/blob/8ded524236347d5a1f7a3169809cab9cf363a1c8/dnsapi/dns_cf.sh#L106
|
||||||
https://github.com/acmesh-official/acme.sh/blob/8ded524236347d5a1f7a3169809cab9cf363a1c8/dnsapi/dns_cf.sh#L106
|
|
||||||
|
|
||||||
|
|
||||||
### 8. Please also check this bug to support the V2 wildcard cert:
|
### 8. Please also check this bug to support the V2 wildcard cert:
|
||||||
|
|
Loading…
Reference in New Issue