]>
Commit | Line | Data |
---|---|---|
1 | # dehydrated [![Build Status](https://travis-ci.org/lukas2511/dehydrated.svg?branch=master)](https://travis-ci.org/lukas2511/dehydrated) | |
2 | ||
3 | ![](docs/logo.jpg) | |
4 | ||
5 | This is a client for signing certificates with an ACME-server (currently only provided by Let's Encrypt) implemented as a relatively simple bash-script. | |
6 | ||
7 | It uses the `openssl` utility for everything related to actually handling keys and certificates, so you need to have that installed. | |
8 | ||
9 | Other dependencies are: cURL, sed, grep, mktemp (all found on almost any system, cURL being the only exception) | |
10 | ||
11 | Current features: | |
12 | - Signing of a list of domains | |
13 | - Signing of a CSR | |
14 | - Renewal if a certificate is about to expire or SAN (subdomains) changed | |
15 | - Certificate revocation | |
16 | ||
17 | Please keep in mind that this software and even the acme-protocol are relatively young and may still have some unresolved issues. Feel free to report any issues you find with this script or contribute by submitting a pull request. | |
18 | ||
19 | ## Getting started | |
20 | ||
21 | For getting started I recommend taking a look at [docs/domains_txt.md](docs/domains_txt.md), [docs/wellknown.md](docs/wellknown.md) and the [Usage](#usage) section on this page (you'll probably only need the `-c` option). | |
22 | ||
23 | Generally you want to set up your WELLKNOWN path first, and then fill in domains.txt. | |
24 | ||
25 | **Please note that you should use the staging URL when experimenting with this script to not hit Let's Encrypt's rate limits.** See [docs/staging.md](docs/staging.md). | |
26 | ||
27 | If you have any problems take a look at our [Troubleshooting](docs/troubleshooting.md) guide. | |
28 | ||
29 | ## Config | |
30 | ||
31 | dehydrated is looking for a config file in a few different places, it will use the first one it can find in this order: | |
32 | ||
33 | - `/etc/dehydrated/config` | |
34 | - `/usr/local/etc/dehydrated/config` | |
35 | - The current working directory of your shell | |
36 | - The directory from which dehydrated was ran | |
37 | ||
38 | Have a look at [docs/examples/config](docs/examples/config) to get started, copy it to e.g. `/etc/dehydrated/config` | |
39 | and edit it to fit your needs. | |
40 | ||
41 | ## Usage: | |
42 | ||
43 | ```text | |
44 | Usage: ./dehydrated [-h] [command [argument]] [parameter [argument]] [parameter [argument]] ... | |
45 | ||
46 | Default command: help | |
47 | ||
48 | Commands: | |
49 | --register Register account key | |
50 | --cron (-c) Sign/renew non-existant/changed/expiring certificates. | |
51 | --signcsr (-s) path/to/csr.pem Sign a given CSR, output CRT on stdout (advanced usage) | |
52 | --revoke (-r) path/to/cert.pem Revoke specified certificate | |
53 | --cleanup (-gc) Move unused certificate files to archive directory | |
54 | --help (-h) Show help text | |
55 | --env (-e) Output configuration variables for use in other scripts | |
56 | ||
57 | Parameters: | |
58 | --accept-terms Accept CAs terms of service | |
59 | --full-chain (-fc) Print full chain when using --signcsr | |
60 | --ipv4 (-4) Resolve names to IPv4 addresses only | |
61 | --ipv6 (-6) Resolve names to IPv6 addresses only | |
62 | --domain (-d) domain.tld Use specified domain name(s) instead of domains.txt entry (one certificate!) | |
63 | --keep-going (-g) Keep going after encountering an error while creating/renewing multiple certificates in cron mode | |
64 | --force (-x) Force renew of certificate even if it is longer valid than value in RENEW_DAYS | |
65 | --no-lock (-n) Don't use lockfile (potentially dangerous!) | |
66 | --lock-suffix example.com Suffix lockfile name with a string (useful for with -d) | |
67 | --ocsp Sets option in CSR indicating OCSP stapling to be mandatory | |
68 | --privkey (-p) path/to/key.pem Use specified private key instead of account key (useful for revocation) | |
69 | --config (-f) path/to/config Use specified config file | |
70 | --hook (-k) path/to/hook.sh Use specified script for hooks | |
71 | --out (-o) certs/directory Output certificates into the specified directory | |
72 | --challenge (-t) http-01|dns-01 Which challenge should be used? Currently http-01 and dns-01 are supported | |
73 | --algo (-a) rsa|prime256v1|secp384r1 Which public key algorithm should be used? Supported: rsa, prime256v1 and secp384r1 | |
74 | ``` |