parent
736266ae9d
commit
8d8eab655c
|
@ -0,0 +1,64 @@
|
|||
# docker-letsencrypt-cron
|
||||
Create and automatically renew website certificates using letsencrypt CA.
|
||||
|
||||
This image will renew your certificates every 2 months, and place the lastest ones in the /certs folder on the host.
|
||||
|
||||
# Setup
|
||||
|
||||
In docker-compose.yml, change the environment variables:
|
||||
- set the DOMAINS environment variable to a space separated list of domains for which you want to generate certificates.
|
||||
- set the EMAIL environment variable for your account on the ACME server, and where you will receive updates from letsencrypt.
|
||||
|
||||
If you want to use the certificates with nginx or apache, uncomment the relevant lines in scripts/run_letsencrypt.sh.
|
||||
|
||||
# ACME Validation challenge
|
||||
|
||||
To authenticate the certificates, the you need to pass the ACME validation challenge. This requires requests made to on port 80 to example.com/.well-known/ to be forwarded to this image.
|
||||
|
||||
## Haproxy example
|
||||
|
||||
If you use a haproxy reverse proxy, you can add the following to your configuration file in order to pass the ACME challenge.
|
||||
|
||||
``` haproxy
|
||||
frontend http
|
||||
bind *:80
|
||||
acl letsencrypt_check path_beg /.well-known
|
||||
|
||||
use_backend letsencrypt if letsencrypt_check
|
||||
|
||||
backend letsencrypt
|
||||
server letsencrypt letsencrypt:80 maxconn 32
|
||||
```
|
||||
|
||||
## Nginx example
|
||||
|
||||
If you use nginx as a reverse proxy, you can add the following to your configuration file in order to pass the ACME challenge.
|
||||
|
||||
``` nginx
|
||||
upstream letsencrypt_upstream{
|
||||
server letsencrypt:80;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
location '/.well-known/acme-challenge' {
|
||||
default_type "text/plain";
|
||||
proxy_pass http://letsencrypt_upstream;
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
# Usage
|
||||
|
||||
```shell
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
The first time you start it up, you may want to run the certificate generation script immediately:
|
||||
|
||||
```shell
|
||||
docker exec letsencrypt sh -c "/run_letsencrypt.sh"
|
||||
```
|
||||
|
||||
At 3AM, on the 1st of every even month, a cron job will start the script, renewing your certificates.
|
Loading…
Reference in New Issue