Skip to content

Commit 4289d55

Browse files
committed
chore: update lego configs
1 parent aeed27a commit 4289d55

File tree

10 files changed

+158
-23
lines changed

10 files changed

+158
-23
lines changed

internal/cert/config/alidns.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@ lego --email [email protected] --dns alidns --domains my.example.org run
2929
ALICLOUD_HTTP_TIMEOUT = "API request timeout"
3030

3131
[Links]
32-
API = "https://www.alibabacloud.com/help/doc-detail/42875.htm"
32+
API = "https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/api-alidns-2015-01-09-dir-parsing-records"
3333
GoClient = "https://github.com/aliyun/alibaba-cloud-sdk-go"

internal/cert/config/azuredns.toml

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,12 @@ lego --domains example.com --email [email protected] --dns azuredns run
2727
### Using Managed Identity (Azure VM)
2828
2929
AZURE_TENANT_ID=<your service principal tenant ID> \
30-
AZURE_SUBSCRIPTION_ID=<your target zone subscription ID> \
3130
AZURE_RESOURCE_GROUP=<your target zone resource group name> \
3231
lego --domains example.com --email [email protected] --dns azuredns run
3332
3433
### Using Managed Identity (Azure Arc)
3534
3635
AZURE_TENANT_ID=<your service principal tenant ID> \
37-
AZURE_SUBSCRIPTION_ID=<your target zone subscription ID> \
38-
AZURE_RESOURCE_GROUP=<your target zone resource group name> \
3936
IMDS_ENDPOINT=http://localhost:40342 \
4037
IDENTITY_ENDPOINT=http://localhost:40342/metadata/identity/oauth2/token \
4138
lego --domains example.com --email [email protected] --dns azuredns run
@@ -61,14 +58,30 @@ Link:
6158
6259
### Environment variables
6360
61+
#### Service Discovery
62+
63+
Lego automatically finds all visible Azure (private) DNS zones using [Azure ResourceGraph query](https://learn.microsoft.com/en-us/azure/governance/resource-graph/).
64+
This can be limited by specifying environment variable `AZURE_SUBSCRIPTION_ID` and/or `AZURE_RESOURCE_GROUP` which limits the
65+
DNS zones to only a subscription or to one resourceGroup.
66+
67+
Additionally environment variable `AZURE_SERVICEDISCOVERY_FILTER` can be used to filter DNS zones with an addition Kusto filter eg:
68+
69+
```
70+
resources
71+
| where type =~ "microsoft.network/dnszones"
72+
| ${AZURE_SERVICEDISCOVERY_FILTER}
73+
| project subscriptionId, resourceGroup, name
74+
```
75+
76+
6477
#### Client secret
6578
6679
The Azure Credentials can be configured using the following environment variables:
6780
* AZURE_CLIENT_ID = "Client ID"
6881
* AZURE_CLIENT_SECRET = "Client secret"
6982
* AZURE_TENANT_ID = "Tenant ID"
7083
71-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `env`.
84+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `env`.
7285
7386
#### Client certificate
7487
@@ -77,7 +90,7 @@ The Azure Credentials can be configured using the following environment variable
7790
* AZURE_CLIENT_CERTIFICATE_PATH = "Client certificate path"
7891
* AZURE_TENANT_ID = "Tenant ID"
7992
80-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `env`.
93+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `env`.
8194
8295
### Workload identity
8396
@@ -88,12 +101,12 @@ This must be configured in kubernetes workload deployment in one hand and on the
88101
Here is a summary of the steps to follow to use it :
89102
* create a `ServiceAccount` resource, add following annotations to reference the targeted Azure AD application registration : `azure.workload.identity/client-id` and `azure.workload.identity/tenant-id`.
90103
* on the `Deployment` resource you must reference the previous `ServiceAccount` and add the following label : `azure.workload.identity/use: "true"`.
91-
* create a fedreated credentials of type `Kubernetes accessing Azure resources`, add the cluster issuer URL and add the namespace and name of your kubernetes service account.
104+
* create a federated credentials of type `Kubernetes accessing Azure resources`, add the cluster issuer URL and add the namespace and name of your kubernetes service account.
92105
93106
Link :
94107
- [Azure AD Workload identity](https://azure.github.io/azure-workload-identity/docs/topics/service-account-labels-and-annotations.html)
95108
96-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `wli`.
109+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `wli`.
97110
98111
### Azure Managed Identity
99112
@@ -128,9 +141,9 @@ az role assignment create \
128141
```
129142
130143
A timeout wrapper is configured for this authentication method.
131-
The duraction can be configured by setting the `AZURE_AUTH_MSI_TIMEOUT`.
144+
The duration can be configured by setting the `AZURE_AUTH_MSI_TIMEOUT`.
132145
The default timeout is 2 seconds.
133-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `msi`.
146+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `msi`.
134147
135148
#### Azure Managed Identity (with Azure Arc)
136149
@@ -144,17 +157,17 @@ you may need to set the environment variables:
144157
* `IDENTITY_ENDPOINT=http://localhost:40342/metadata/identity/oauth2/token`
145158
146159
A timeout wrapper is configured for this authentication method.
147-
The duraction can be configured by setting the `AZURE_AUTH_MSI_TIMEOUT`.
160+
The duration can be configured by setting the `AZURE_AUTH_MSI_TIMEOUT`.
148161
The default timeout is 2 seconds.
149-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `msi`.
162+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `msi`.
150163
151164
### Azure CLI
152165
153166
The Azure CLI is a command-line tool provided by Microsoft to interact with Azure resources.
154167
It provides an easy way to authenticate by simply running `az login` command.
155168
The generated token will be cached by default in the `~/.azure` folder.
156169
157-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `cli`.
170+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `cli`.
158171
159172
### Open ID Connect
160173
@@ -169,10 +182,11 @@ It can be enabled by setting the `AZURE_AUTH_METHOD` environment variable to `oi
169182
AZURE_CLIENT_SECRET = "Client secret"
170183
AZURE_TENANT_ID = "Tenant ID"
171184
AZURE_CLIENT_CERTIFICATE_PATH = "Client certificate path"
172-
AZURE_SUBSCRIPTION_ID = "DNS zone subscription ID"
173-
AZURE_RESOURCE_GROUP = "DNS zone resource group"
174185
[Configuration.Additional]
175186
AZURE_ENVIRONMENT = "Azure environment, one of: public, usgovernment, and china"
187+
AZURE_SUBSCRIPTION_ID = "DNS zone subscription ID"
188+
AZURE_RESOURCE_GROUP = "DNS zone resource group"
189+
AZURE_SERVICEDISCOVERY_FILTER = "Advanced ServiceDiscovery filter using Kusto query condition"
176190
AZURE_PRIVATE_ZONE = "Set to true to use Azure Private DNS Zones and not public"
177191
AZURE_ZONE_NAME = "Zone name to use inside Azure DNS service to add the TXT record in"
178192
AZURE_AUTH_METHOD = "Specify which authentication method to use"

internal/cert/config/cpanel.toml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
Name = "CPanel/WHM"
2+
Description = ''''''
3+
URL = "https://cpanel.net/"
4+
Code = "cpanel"
5+
Since = "v4.16.0"
6+
7+
Example = '''
8+
### CPANEL (default)
9+
10+
CPANEL_USERNAME = "yyyy"
11+
CPANEL_TOKEN = "xxxx"
12+
CPANEL_BASE_URL = "https://example.com:2083" \
13+
lego --email [email protected] --dns cpanel --domains my.example.org run
14+
15+
## WHM
16+
17+
CPANEL_MODE = whm
18+
CPANEL_USERNAME = "yyyy"
19+
CPANEL_TOKEN = "xxxx"
20+
CPANEL_BASE_URL = "https://example.com:2087" \
21+
lego --email [email protected] --dns cpanel --domains my.example.org run
22+
'''
23+
24+
[Configuration]
25+
[Configuration.Credentials]
26+
CPANEL_USERNAME = "username"
27+
CPANEL_TOKEN = "API token"
28+
CPANEL_BASE_URL = "API server URL"
29+
[Configuration.Additional]
30+
CPANEL_MODE = "use cpanel API or WHM API (Default: cpanel)"
31+
CPANEL_POLLING_INTERVAL = "Time between DNS propagation check"
32+
CPANEL_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation"
33+
CPANEL_TTL = "The TTL of the TXT record used for the DNS challenge"
34+
CPANEL_HTTP_TIMEOUT = "API request timeout"
35+
CPANEL_REGION = "The region"
36+
37+
[Links]
38+
API_CPANEL = "https://api.docs.cpanel.net/cpanel/introduction/"
39+
API_WHM = "https://api.docs.cpanel.net/whm/introduction/"

internal/cert/config/gcloud.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ GCE_PROJECT="gc-project-id" GCE_SERVICE_ACCOUNT_FILE="/path/to/svc/account/file.
2121
GCE_SERVICE_ACCOUNT = "Account"
2222
[Configuration.Additional]
2323
GCE_ALLOW_PRIVATE_ZONE = "Allows requested domain to be in private DNS zone, works only with a private ACME server (by default: false)"
24+
GCE_ZONE_ID = "Allows to skip the automatic detection of the zone"
2425
GCE_POLLING_INTERVAL = "Time between DNS propagation check"
2526
GCE_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation"
2627
GCE_TTL = "The TTL of the TXT record used for the DNS challenge"
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Name = "Mail-in-a-Box"
2+
Description = ''''''
3+
URL = "https://mailinabox.email"
4+
Code = "mailinabox"
5+
Since = "v4.16.0"
6+
7+
Example = '''
8+
9+
MAILINABOX_PASSWORD=yyyy \
10+
MAILINABOX_BASE_URL=https://box.example.com \
11+
lego --email [email protected] --dns mailinabox --domains my.example.org run
12+
'''
13+
14+
[Configuration]
15+
[Configuration.Credentials]
16+
MAILINABOX_EMAIL = "User email"
17+
MAILINABOX_PASSWORD = "User password"
18+
MAILINABOX_BASE_URL = "Base API URL (ex: https://box.example.com)"
19+
[Configuration.Additional]
20+
MAILINABOX_POLLING_INTERVAL = "Time between DNS propagation check"
21+
MAILINABOX_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation"
22+
23+
[Links]
24+
API = "https://mailinabox.email/api-docs.html"

internal/cert/config/pdns.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,20 @@ Tested and confirmed to work with PowerDNS authoritative server 3.4.8 and 4.0.1.
1818
PowerDNS Notes:
1919
- PowerDNS API does not currently support SSL, therefore you should take care to ensure that traffic between lego and the PowerDNS API is over a trusted network, VPN etc.
2020
- In order to have the SOA serial automatically increment each time the `_acme-challenge` record is added/modified via the API, set `SOA-EDIT-API` to `INCEPTION-INCREMENT` for the zone in the `domainmetadata` table
21+
- Some PowerDNS servers doesn't have root API endpoints enabled and API version autodetection will not work. In that case version number can be defined using `PDNS_API_VERSION`.
2122
'''
2223

2324
[Configuration]
2425
[Configuration.Credentials]
2526
PDNS_API_KEY = "API key"
2627
PDNS_API_URL = "API URL"
2728
[Configuration.Additional]
29+
PDNS_SERVER_NAME = "Name of the server in the URL, 'localhost' by default"
30+
PDNS_API_VERSION = "Skip API version autodetection and use the provided version number."
2831
PDNS_POLLING_INTERVAL = "Time between DNS propagation check"
2932
PDNS_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation"
3033
PDNS_TTL = "The TTL of the TXT record used for the DNS challenge"
3134
PDNS_HTTP_TIMEOUT = "API request timeout"
32-
PDNS_SERVER_NAME = "Name of the server in the URL, 'localhost' by default"
3335

3436
[Links]
3537
API = "https://doc.powerdns.com/md/httpapi/README/"

internal/cert/config/route53.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ AWS_ACCESS_KEY_ID=your_key_id \
99
AWS_SECRET_ACCESS_KEY=your_secret_access_key \
1010
AWS_REGION=aws-region \
1111
AWS_HOSTED_ZONE_ID=your_hosted_zone_id \
12-
--domains example.com --email [email protected] --dns route53 --accept-tos=true run
12+
lego --domains example.com --email [email protected] --dns route53 --accept-tos=true run
1313
'''
1414

1515
Additional = '''

internal/cert/config/scaleway.toml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,19 @@ Code = "scaleway"
55
Since = "v3.4.0"
66

77
Example = '''
8-
SCALEWAY_API_TOKEN=xxxxxxx-xxxxx-xxxx-xxx-xxxxxx \
8+
SCW_SECRET_KEY=xxxxxxx-xxxxx-xxxx-xxx-xxxxxx \
99
lego --email [email protected] --dns scaleway --domains my.example.org run
1010
'''
1111

1212
[Configuration]
1313
[Configuration.Credentials]
14-
SCALEWAY_API_TOKEN = "API token"
15-
SCALEWAY_PROJECT_ID = "Project to use (optional)"
14+
SCW_SECRET_KEY = "Secret key"
15+
SCW_PROJECT_ID = "Project to use (optional)"
1616
[Configuration.Additional]
17-
SCALEWAY_POLLING_INTERVAL = "Time between DNS propagation check"
18-
SCALEWAY_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation"
19-
SCALEWAY_TTL = "The TTL of the TXT record used for the DNS challenge"
17+
SCW_ACCESS_KEY = "Access key"
18+
SCW_POLLING_INTERVAL = "Time between DNS propagation check"
19+
SCW_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation"
20+
SCW_TTL = "The TTL of the TXT record used for the DNS challenge"
2021

2122
[Links]
2223
API = "https://developers.scaleway.com/en/products/domain/dns/api/"
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Name = "Shellrent"
2+
Description = ''''''
3+
URL = "https://www.shellrent.com/"
4+
Code = "shellrent"
5+
Since = "v4.16.0"
6+
7+
Example = '''
8+
SHELLRENT_USERNAME=xxxx \
9+
SHELLRENT_TOKEN=yyyy \
10+
lego --email [email protected] --dns shellrent --domains my.example.org run
11+
'''
12+
13+
[Configuration]
14+
[Configuration.Credentials]
15+
SHELLRENT_USERNAME = "Username"
16+
SHELLRENT_TOKEN = "Token"
17+
[Configuration.Additional]
18+
SHELLRENT_POLLING_INTERVAL = "Time between DNS propagation check"
19+
SHELLRENT_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation"
20+
SHELLRENT_TTL = "The TTL of the TXT record used for the DNS challenge"
21+
SHELLRENT_HTTP_TIMEOUT = "API request timeout"
22+
23+
[Links]
24+
API = "https://api.shellrent.com/section/api2"

internal/cert/config/webnames.toml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Name = "Webnames"
2+
Description = ''''''
3+
URL = "https://www.webnames.ru/"
4+
Code = "webnames"
5+
Since = "v4.15.0"
6+
7+
Example = '''
8+
WEBNAMES_API_KEY=xxxxxx \
9+
lego --email [email protected] --dns webnames --domains my.example.org run
10+
'''
11+
12+
Additional = '''
13+
## API Key
14+
15+
To obtain the key, you need to change the DNS server to `*.nameself.com`: Personal account / My domains and services / Select the required domain / DNS servers
16+
17+
The API key can be found: Personal account / My domains and services / Select the required domain / Zone management / acme.sh or certbot settings
18+
'''
19+
20+
[Configuration]
21+
[Configuration.Credentials]
22+
WEBNAMES_API_KEY = "Domain API key"
23+
[Configuration.Additional]
24+
WEBNAMES_POLLING_INTERVAL = "Time between DNS propagation check"
25+
WEBNAMES_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation"
26+
WEBNAMES_TTL = "The TTL of the TXT record used for the DNS challenge"
27+
WEBNAMES_HTTP_TIMEOUT = "API request timeout"
28+
29+
[Links]
30+
API = "https://github.com/regtime-ltd/certbot-dns-webnames"

0 commit comments

Comments
 (0)