Letsencrypt tanúsítványok automatikus megszerzésének beállítása dockeren linuxon

Nemrég változtattam a virtuális szerveren, és mindent újra kellett konfigurálnom. Előnyben részesítem, hogy a weboldal HTTPS-en legyen elérhető, és a Let's Encrypt tanúsítványok automatikusan meg legyenek szerezve és megújítva. Ezt két Docker-képet, az nginx-proxy-t és az nginx-proxy-companion-t használva érhetjük el.

Ez a útmutató bemutatja, hogyan lehet weboldalt beállítani Docker alatt, proxy-val, amely automatikusan megszerzi SSL tanúsítványok. CentOS 7 virtuális szerver használatával.

Feltételezem, hogy a szerver már meg lett vásárolva, be van állítva, és a belépés hozzá kulccsal történik, a fail2ban is telepítve van, stb.

Először telepítenünk kell a Dockert.

  1. Először szükséges a függőségek telepítése
    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  2. Kapcsoljuk be a tárolót
    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. Ezután telepítsük a Docker Community Edition-t
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Adja hozzá a Dockert az automatikus indításhoz és indítsa el
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Adja hozzá a felhasználót a docker csoporthoz, hogy a docker-t sudo nélkül futtathassa
    $ usermod -aG docker user

A következő lépés az, hogy telepítjük a docker-compose-t. Ezt többféleképpen telepíthetjük, de én a pip menedzser és a virtualenv használatát részesítem előnyben, hogy ne zsúfoljuk tele a rendszert felesleges csomagokkal.

  1. Telepítse a pip-et
    $ sudo yum install python-pip
  2. Telepítse a virtualenv-et
    $ pip install virtualenv
  3. Ezután létre kell hoznunk egy projektmappát és inicializálnunk kell azt. A csomagkezeléshez szükséges mappa neve ve lesz.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. A virtuális környezet használatához a következő parancsot kell végrehajtani a projektmappában.
    $ source ve/bin/activate
  5. Most már telepíthetjük a docker-compose-t.
    pip install docker-compose

    Annak érdekében, hogy a konténerek láthassák egymást, létre kell hoznunk egy hálózatot. Alapértelmezés szerint a bridge drivert használja.

    $ docker network create network

    Ezután szükség van a docker-compose konfigurálására, a proxy a proxy mappában lesz, a tesztoldal pedig a test mappában. Példaként az example.com domaint használom.

    $ mkdir proxy
    $ mkdir test
    $ touch proxy/docker-compose.yml
    $ touch test/docker-compose.yml

    Tartalom proxy/docker-compose.yml

    verzió: '3'
    
    hálózatok:
      alapértelmezett:
        külső:
          név: hálózat
    
    szolgáltatások:
      nginx-proxy:
        konténer_név: nginx-proxy
        kép: jwilder/nginx-proxy
        portok:
          - 80:80
          - 443:443
        kötetek:
          - certs:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/tmp/docker.sock:ro
    
      nginx-proxy-letsencrypt:
        konténer_név: nginx-proxy-letsencrypt
        kép: jrcs/letsencrypt-nginx-proxy-companion
        kötetek:
          - certs:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/var/run/docker.sock:ro
        környezet:
          - NGINX_PROXY_CONTAINER=nginx-proxy
    
    kötetek:
      certs:
      vhost.d:
      html:

    Környezeti változó NGINX_PROXY_CONTAINER szükséges, hogy a letsencrypt konténer lássa a proxy konténert. A mappákat /etc/nginx/certs, /etc/nginx/vhost.d és /usr/share/nginx/html közösen kell használniuk mindkét konténernek. A letsencrypt konténer megfelelő működéséhez az alkalmazásnak elérhetőnek kell lennie a 80-as és a 443-as porton is.

    Tartalom teszt/docker-compose.yml

    verzió: '3'
    
    hálózatok:
      alapértelmezett:
        külső:
          név: hálózat
    
    szolgáltatások:
    
      nginx:
        konténer_név: nginx
        kép: nginx:latest
        környezet:
          - VIRTUAL_HOST=example.com
          - LETSENCRYPT_HOST=example.com
          - LETSENCRYPT_EMAIL=admin@example.com

    Itt a környezeti változók szükségesek, hogy a proxy helyesen kezelje a kéréseket a szerverhez, és kérjen tanúsítványt a megfelelő domain névre.

    Csak annyit kell tenni, hogy elindítjuk a docker-compose-t

    $ cd proxy
    $ docker-compose up -d
    $ cd ../teszt
    $ docker-compose up -d

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster