Initial commit
initial commit
This commit is contained in:
commit
574c94b8ac
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
cert
|
16
Dockerfile
Normal file
16
Dockerfile
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
FROM debian
|
||||||
|
|
||||||
|
MAINTAINER Joachim Lusiardi
|
||||||
|
|
||||||
|
RUN apt-get update; \
|
||||||
|
apt-get install -y haproxy;
|
||||||
|
|
||||||
|
ADD haproxy.conf /haproxy.conf
|
||||||
|
|
||||||
|
ADD start.sh /start.sh
|
||||||
|
RUN chmod +x /start.sh
|
||||||
|
|
||||||
|
VOLUME ["/data"]
|
||||||
|
|
||||||
|
EXPOSE 443
|
||||||
|
ENTRYPOINT /start.sh
|
26
README.md
Normal file
26
README.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# SSL Termination using haproxy
|
||||||
|
This image translates between plain http and https using haproxy.
|
||||||
|
|
||||||
|
## How it works
|
||||||
|
```
|
||||||
|
+---------------------+ +--------+
|
||||||
|
+---+ | +--+ |
|
||||||
|
-->|443| docker_ssl_endpoint |<---->|80| target |
|
||||||
|
+---+ | +--+ |
|
||||||
|
+----------+----------+ +--------+
|
||||||
|
|
|
||||||
|
|
|
||||||
|
+-----+-----+
|
||||||
|
| cert data |
|
||||||
|
+-----------+
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
The *docker_ssl_endpoint* Container listens on port 443 (expose this port for
|
||||||
|
public) availability. All secure connections coming in on this port are handled
|
||||||
|
using the certificates form the *cert data* volume and passed on to the *target*
|
||||||
|
container's port 80.
|
||||||
|
|
||||||
|
## Starting the container
|
||||||
|
|
||||||
|
`docker run --name ssl_endpoint -v $PATH_TO_CERT_DATA:/data -p $IP:443:443 d --link nginx:target docker_ssl_endpoint`
|
30
haproxy.conf
Normal file
30
haproxy.conf
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
global
|
||||||
|
chroot /var/lib/haproxy
|
||||||
|
stats socket /admin.sock mode 660 level admin
|
||||||
|
stats timeout 30s
|
||||||
|
user haproxy
|
||||||
|
group haproxy
|
||||||
|
daemon
|
||||||
|
|
||||||
|
ca-base /etc/ssl/certs
|
||||||
|
crt-base /crypt
|
||||||
|
|
||||||
|
ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL
|
||||||
|
ssl-default-bind-options no-sslv3
|
||||||
|
|
||||||
|
defaults
|
||||||
|
#log global
|
||||||
|
mode http
|
||||||
|
#option httplog
|
||||||
|
#option dontlognull
|
||||||
|
timeout connect 5000
|
||||||
|
timeout client 50000
|
||||||
|
timeout server 50000
|
||||||
|
|
||||||
|
frontend https
|
||||||
|
bind *:443 ssl crt /data/cert.pem
|
||||||
|
reqadd X-Forwarded-Proto:\ https
|
||||||
|
default_backend www-backend
|
||||||
|
|
||||||
|
backend www-backend
|
||||||
|
server one target:80
|
Loading…
Reference in New Issue
Block a user