-
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
39 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,49 +2,54 @@ | |
|
||
EasyHAProxy can issue a letsencrypt certificate. Follow the steps below: | ||
|
||
Run the EasyHAProxy: | ||
## Setting up EasyHAProxy | ||
|
||
Run the EasyHAProxy container: | ||
|
||
```bash | ||
docker run \ | ||
-e [email protected] | ||
.... \ | ||
... \ | ||
-e [email protected] \ | ||
-p 80:80 \ | ||
-p 443:443 \ | ||
-v /path/to/guest/lestencrypt/certs:/certs/letsencrypt \ | ||
... \ | ||
byjg/easy-haproxy | ||
``` | ||
|
||
Run your container: | ||
Notes: | ||
|
||
- If you don't setup `EASYHAPROXY_LETSENCRYPT_EMAIL` environment variable, EasyHAProxy will fail silently and **will not request** a certificate. | ||
- The ports 80 and 443 needs to accessible through the internet as [Let's Encrypt requirement](https://letsencrypt.org/docs/allow-port-80/) | ||
|
||
Be aware of Letsencrypt issue rate limits: | ||
|
||
- https://letsencrypt.org/docs/duplicate-certificate-limit/ | ||
- https://letsencrypt.org/docs/rate-limits/ | ||
|
||
In order to avoid several certificate issuing, | ||
**It is required you to persist the container folder `/certs/letsencrypt` outside the container.** | ||
You cannot delete or change it contents. | ||
If you do not persist, or change/delete the contents, Let's encrypt will not work properly. | ||
|
||
|
||
## Setting up your container to use Let's Encrypt | ||
|
||
```bash | ||
docker run \ | ||
... \ | ||
--label easyhaproxy.express.port=80 \ | ||
--label easyhaproxy.express.localport=3000 \ | ||
--label easyhaproxy.express.host=example.org \ | ||
--label easyhaproxy.express.letsencrypt=true \ | ||
.... \ | ||
... \ | ||
some/myimage | ||
``` | ||
|
||
Requirements: | ||
|
||
- Your container **must** listen to port 80. Letsencrypt will not issue the certificate if `easyhaproxy.express.port` is in another port, and EasyHAProxy will fail silently. | ||
- Your container **must** listen to port 80. Letsencrypt will not issue the certificate if `easyhaproxy.<definition>.port` is in another port, and EasyHAProxy will fail silently. | ||
- You cannot set port 443 for the container with the Letsencrypt because EasyHAProxy will create this port automatically once the certificate is issued. | ||
- `EASYHAPROXY_LETSENCRYPT_EMAIL` environment variable is required to be set. If you don't set it up, EasyHAProxy **will not request** a certificate. | ||
|
||
Be aware of Letsencrypt issue limits - https://letsencrypt.org/docs/duplicate-certificate-limit/ and https://letsencrypt.org/docs/rate-limits/ | ||
|
||
## Persist your Letsencrypt certificates | ||
|
||
It is a good idea to store the letsencrypt certificate in persistent storage because of the limit on how many certificates can be issued for the same domain in a period. | ||
|
||
To do this, map the folder `/certs/letsencrypt` to a docker volume. | ||
|
||
```bash | ||
docker volume create certs_letsencrypt | ||
|
||
docker run \ | ||
/* other parameters */ | ||
-v certs_letsencrypt:/certs/letsencrypt \ | ||
-d byjg/easy-haproxy | ||
``` | ||
|
||
---- | ||
[Open source ByJG](http://opensource.byjg.com) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters