]> git.street.me.uk Git - andy/dehydrated.git/blob - README.md
Output date and time when performing --cron task.
[andy/dehydrated.git] / README.md
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 ```