Public Repository

Last pushed: 7 months ago
Short Description
Acquire LetsEncrypt certificate for your domain.
Full Description

Wymagane parametry do docker run [...]:

  • istniejący pusty katalog certs/
  • port LOCAL_PORT, który będzie wystawiony na świat jako port HTTP(=80) tak aby LetsEncrypt zweryfikował domenę DOMAIN
  • parametr EMAIL
  • parametr DOMAIN

Polecenie do wykonania

docker run --rm -p LOCAL_PORT:5000 -v $(pwd)/certs:/certs -e EMAIL=your@email.com -e DOMAIN=your.domain.com superprzemek/letsencrypt

Wynik: Pliki certyfikatów w katalogu certs/

Szybki test poprawności certyfikatów

  • Tworzymy plik app/index.html
  • Tworzymy plik confd/ssl.conf o zawartości:
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name your.domain.com;

    ssl_certificate     /certs/fullchain.pem;
    ssl_certificate_key /certs/privkey.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_session_cache   shared:SSL:20m;
    ssl_session_timeout 180m;

    root /app;
    index index.html;

    error_page 404 500 /error.html;
}
  • Uruchamiamy obraz z nginx-em na pokładzie. Port LOCAL_HTTPS_PORT musi być dostępny ze świata jako HTTPS(=443).
docker run -d -v $(pwd)/confd:/etc/nginx/conf.d -v $(pwd)/app:/app -v $(pwd)/certs:/certs -p LOCAL_HTTPS_PORT:443 nginx
  • Sprawdzamy działanie wchodząc na stronę https://your.domain.com
  • Zatrzymujemy kontener dockera

Dockerfile

# Jak kompilowac/uruchomic:
#
# \> docker build -t superprzemek/letsencrypt .
#
# \> mkdir certs/
# \> docker run --rm -p LOCAL_PORT:5000 -v $(pwd)/certs:/certs -e EMAIL=your@email.com -e DOMAIN=your.domain.com superprzemek/letsencrypt
#

FROM microsoft/dotnet:latest

MAINTAINER superprzemek

RUN ["mkdir", "/certbot"]
WORKDIR /certbot
RUN ["wget", "https://dl.eff.org/certbot-auto"]
RUN ["chmod", "a+x", "certbot-auto"]
RUN ./certbot-auto --dry-run --text --non-interactive --staging || true

COPY . /app
WORKDIR /app

RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]

EXPOSE 5000/tcp
VOLUME /certs

CMD ["/bin/bash", "run.sh"]
Docker Pull Command
Owner
superprzemek

Comments (0)